Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OleVariant - работа 
V
    Опции темы
uranpro
Дата 28.5.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



почему delphi ругается???
Код

function cExcel.Range(S:Char): OleVariant;
begin
Result:=WKB.Range[S + IntToStr(Ranges.CurrRow)];
end;


говорит Invalid variant operation


было бы здорово, если код работал, я получил бы короткий доступ к ячейки, например Range('A').Value:='бугага))'

если можно использовать property, подскажите как

WBK(OleVariant) -
Код

WKB:= EXCEL.ActiveWorkBook




--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
uranpro
Дата 28.5.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



 smile 


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
uranpro
Дата 28.5.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



блииин, подскажите плс ! мне завтра эта инфа нужна..
или о5 придется все в ручную писпть или править визде, где использую Range(S:Char)   (((


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
MetalFan
Дата 28.5.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 3
Всего: 128



автор, научись задавать вопросы так, чтобы другие люди смогли понять что тебе нужно.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Albinos_x
Дата 28.5.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



Цитата(uranpro @  28.5.2008,  14:49 Найти цитируемый пост)
Ranges.CurrRow

переменную Ranges откуда взял?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
uranpro
Дата 29.5.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



Код

function cExcel.Range(S:Char): OleVariant;
begin
Result:=WKB.Range[S + '1']; 
{допустим, что переменная S = 'A', то в квадратных скобках(точнее Range[...]) получается 'A1', в итоге получаем вид 
WKB.Range['A1']}
end;


оО

вопрос:
почему Delphi 7, когда я пытаюсь использовать эту функцию в приложении, говорит Invalid variant operation, и указывает на строчку
Result:=WKB.Range[S + '1'];  ?



--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Albinos_x
Дата 29.5.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



хм... у меня всё работает...
WKB глобальная переменная?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
uranpro
Дата 29.5.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



да))) я все понял! просто сам ступил, обращался к функции до ее определения WKB )))

Код

procedure cExcel.StartExcel(ChangeColWidths:boolean);
begin
   Exc := CreateOleObject('Excel.Application');
if (Template<>'') and (FileExists(Template)) then Exc.Workbooks.Open(Template)
else if Template='' then Exc.Workbooks.add;

Exc.ActiveWorkbook.Sheets[1].Activate;

Opened:=true;

if ChangeColWidths=true then SetColWidths;



WKB:=Exc.ActiveWorkbook.ActiveSheet; {и только тут определял ))) хотя SetColWidths уже юзает WKB )))}



--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0885 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.