Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2010.03.21;
Скачать: [xml.tar.bz2];

Вниз

Отчего ошибка при сравнении 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
2-1263974246
fford
2010-01-20 10:57
2010.03.21
запись в память по смещению


1-1243160913
RWolf
2009-05-24 14:28
2010.03.21
ShareMem: конфликт версий


2-1263705488
grom333
2010-01-17 08:18
2010.03.21
Куда делись мои формы после закрытия проекта, и вновь открытия?


2-1263582604
serhiyiv
2010-01-15 22:10
2010.03.21
TListView и OnCustomDrawItem


15-1262571775
uw
2010-01-04 05:22
2010.03.21
Что и требовалось доказать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский