Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Unassigned [D6, XP]


helpmepls ©   (2008-03-28 00:08:00) 

Я использую функцию поиска Excel. Она возвращает Variant.

qq:=Unassigned;
qq:=App.Cells.Find...

а вот дальше, если результата поиска нет, она возвращает адрес на $000000.

как написать верное условие на проверку полученного результата?
Что то вроде IsAssigned или что? Помогите пожалуйста..


helpmepls   (2008-03-28 13:06:00) [1]

Всем спасибо.
Использовал TVarData(v).VDispatch


palva   (2008-03-28 12:56:00) [2]

Вне зависимости от того какой подтип можно проверить с явным приведением к любому подтипу:
if TVarData(v).VInteger = 0 then ...
или даже так:
if TVarData(v).VDispatch = Nil then ...


han_malign   (2008-03-28 12:15:00) [3]


> qq:=App.Cells.Find...

- попробуй пошагово
try
  cells = App.Cells;
except
end;
if( VarType(cells) = varDispatch ) then
  qq = cells.Find...

очень аккуратно с вложенными интерфейсами надо, обломать в любой точке может.

З.Ы. Кто бы знал, как заколебал - этот гребанный safecall...


helpmepls   (2008-03-28 09:23:00) [4]

raised exception class EAccessViolation with message 'Access violation at address 004751AB in


helpmepls   (2008-03-28 09:22:00) [5]


> Loginov Dmitry ©   (28.03.08 07:41) [5]


> Ega23 ©   (28.03.08 08:15) [6]


Да вот тоже нет. Возвращается в Variant вот что:

qq: $00000000


Ega23   (2008-03-28 08:15:00) [6]

if VarIsNull(v)


Loginov Dmitry   (2008-03-28 07:41:00) [7]

VarIsEmpty() ?


helpmepls   (2008-03-28 01:42:00) [8]


> Германн ©   (28.03.08 01:33) [3]


нет..

'Invalid variant operation'


Германн   (2008-03-28 01:33:00) [9]

if qq = nil или if qq = Nullне катит?


helpmepls   (2008-03-28 01:08:00) [10]


> Это как ?


Ну ладно... я не прально выразился.

Вопрос: как узнать что поиск не пустой?
мне приходится использовать щас try except с if VarToStr(qq)='' это непомерно тупо.. как правильно?


Сергей М.   (2008-03-28 00:37:00) [11]


> возвращает адрес на $000000


Это как ?

Уж больно оно смахивает на "носит шляпу на панаму")


Наверх

Титульная страница Поиск, карта сайта Написать письмо