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.