Вопрос

This is my code:

**if** FWordApp = UnAssigned **then**
    FWordApp := CreateOleObject('Word.Application') ;
Result := FWordApp;

The above sits in a GETter for a property of type OleVariant.

The first time, it goes through fine, compares TRUE to Unassigned. However, the same isn't true the second time, where comparing to UnAssigned gives me an Invalid Variant Operation error.

Это было полезно?

Решение

As the error message is telling you, you are not allowed to compare Unassigned against a COM object in the context of an OleVariant. That's an illegal comparison.

Your test should instead use VarIsEmpty:

if VarIsEmpty(FWordApp) then
  FWordApp := CreateOleObject('Word.Application');
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top