Главная страница
    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-1262357306
Чипырик
2010-01-01 17:48
2010.03.21
Запрос SQL и символ "


15-1262079061
Лариса
2009-12-29 12:31
2010.03.21
Как разархивировать zip-архив?


2-1263813721
Анна
2010-01-18 14:22
2010.03.21
TTreeView с Check Boxes


1-1245049450
Priest
2009-06-15 11:04
2010.03.21
После установки D 2007 начались проблемы в D7


2-1263433208
Kenny1
2010-01-14 04:40
2010.03.21
Изменить цвет TPanel при помощи API





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский