Einzelnen Beitrag anzeigen

Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#1

Olevariant Typ explizit zuweisen

  Alt 19. Apr 2021, 11:32
Delphi-Version: 10.4 Sydney
Hallo,

ich bin heute an einer Variant-Zuweisung hängen geblieben, habe auch eine Lösung gefunden, wollte aber wissen, ob es auch richtiger geht.

Wenn ich folgendes mache:
Code:
procedure TForm15.FormCreate(Sender: TObject);
var
  v: variant;
  o: olevariant;
  dw: LongWord;
begin
  dw:=5;
  v:=dw;
  o:=dw;
  caption:=vartype(v).ToString+' o:'+vartype(o).ToString;
end;
dann erhalte ich als vartype von v die 19 (=varUInt32), für o jedoch die 3 (=varInteger), obwohl nachdem, was ich gegoogelt habe, auch die OleVariant UInt32 kennt.

Gelöst habe ich das, indem ich nach der Zuweisung direkt den gewünschten Typ in die Variantenstruktur schmiere:

TVarData(ItemValue).VType:=varUInt32;

Das hilft bei meinem Problem, aber ob es auch der Weisheit letzter Schluss ist, weiss ich nicht.
  Mit Zitat antworten Zitat