OleVariant i nil

0

Hej!

Piszę pewien program w którym mam funkcje, której przekazuje pewne argumenty typu OleVariant. Znalazłem inny program który działa podobnie jak mój, więc się na nim wzoruje. W tym innym programie znalazł się taki zapis:

var NilVar : OleVariant absolute 0;

I zmienna ta używana jest przy niektórych wywołaniach jako argument. Widocznie funkcja, której jako argument przekazujemy np. tę zmienną sprawdza, czy wartośc jest NIL jak tak... działa jakoś, jak NIE - działa inaczej (wykorzystuje tę wartość). No i chciałem to przenieść do mojego programu i nie mogę. Piszę pod Delphi 2005. I nie pozwala mi na ten zapis. Próbowałem tak:

var NilVar : OleVariant = nil;

też nie.

var NilVar : OleVariant;
...
NilVar:=nil;

tez nie pozwala. Więc jako zrobić zmienną typu olevariant by była NIL'em.

Morris
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 3 godziny
  • Postów:37
0

Zmienna typu OleVariant jest automatycznie inicjalizowana wartością Unassigned. Wartość tą można również do zmiennej OleVariant przypisać albo bezpośrednio, albo wywołując procedurę VarClear.

Testowanie zmiennej na "Unassigned" odbywa się za pomocą funkcji VarIsEmpty.


M.O.R.R.I.S.: Mechanical Obedient Replicant Responsible for Infiltration and Sabotage
crowa
  • Rejestracja:prawie 19 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Poznań
  • Postów:295
0

nie odwolujemy sie do olevarianta bezposrednio
Jesli chodzi o przekazywane wskazniki w olevariantach to zawsze tak

Kopiuj
Assigned(TVarData(MOJ_OLE_VARIANT).vPointer)

Tomasz Andrzejewski
Delphi (XE3-XE7) framework engineer @ InterLan
MCP: Microsoft SQL Server 2008, Implementation and Maintenance

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.