Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.21;
Скачать: CL | DM;

Вниз

Отчего ошибка при сравнении Variant?   Найти похожие ветки 

 
Cobalt ©   (2009-04-19 21:02) [0]

Есть переменная
FWB : Variant;
В конструкторе класса инициализирую её Unassigned
В процедуре перед тем, как обратиться к ней, делаю проверку:
 if FWB = Unassigned then
   Result := Unassigned


И это сравнение вызывает
raise EVariantInvalidOpError.Create(SInvalidVarOp);

Получается это оттого, что  сравнение идет с типом varDispatch.

Возникает вопрос - каковы причины такого поведения?
Почему не возвращать false?

P.S.  BDS2007


 
ТД   (2009-04-19 21:12) [1]


> Result := Unassigned

а подумать после посмотреть?


 
Cobalt ©   (2009-04-19 21:20) [2]

Для особо внимательных:
Я прошелся по системным модулям до самого места вызова EVariantInvalidOpError, и обнаружил, что на любую операцию сравнивания с varDispatch вызывается эксепшн.

Вопрос-то мой об аргументах на такой запрет.


 
int64   (2009-04-20 09:40) [3]

Вообще-то, вместо FWB = Unassigned реальные пацаны пишут: VarIsClear(FWB).
Впрочем как и вместо FWB = null -> VarIsNull


 
Плохиш ©   (2009-04-20 10:43) [4]


> Cobalt ©   (19.04.09 21:20) [2]
>
> Для особо внимательных:
> Я прошелся по системным модулям до самого места вызова EVariantInvalidOpError

А справку не пробовал по используемым функциям почитать?
Хотя, чегой-то я, реальнокрютыеперцы справок/книжек не читают...


 
clickmaker ©   (2009-04-20 11:29) [5]

> Почему не возвращать false?

VarIsEmpty()



Страницы: 1 вся ветка

Текущий архив: 2010.03.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
2-1263675531
HRustBB
2010-01-16 23:58
2010.03.21
указатель на пременную THighlihter


15-1262599046
Vius
2010-01-04 12:57
2010.03.21
Написание гаджета для Win7


2-1263934328
@!!ex
2010-01-19 23:52
2010.03.21
Как подогнать размеры TRichEdit под текст в нем


4-1228827942
Alex_C
2008-12-09 16:05
2010.03.21
Открытие COM-порта при использовании переходника USB-COM


3-1236755543
Михаил
2009-03-11 10:12
2010.03.21
Немогу открыть файл mdb в запросе AdoQuery