问题
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.
回答1:
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');
来源:https://stackoverflow.com/questions/18533890/invalid-variant-operation-when-comparing-an-olevariant-to-unassigned