Операция с недопустимым вариантом при сравнении OleVariant с UnAssigned
Это мой код:
**if** FWordApp = UnAssigned **then**
FWordApp := CreateOleObject('Word.Application') ;
Result := FWordApp;
Выше приведено в GETter для свойства типа OleVariant.
В первый раз все проходит нормально, сравнивается TRUE с Unassigned. Однако то же самое не так во второй раз, когда сравнение с UnAssigned выдает ошибку Invalid Variant Operation.
1 ответ
Решение
Как говорится в сообщении об ошибке, вы не можете сравнивать Unassigned
против COM-объекта в контексте OleVariant
, Это незаконное сравнение.
Ваш тест должен использовать вместо VarIsEmpty
:
if VarIsEmpty(FWordApp) then
FWordApp := CreateOleObject('Word.Application');