Hi,
kann mir jemand dieses komische Verhalten erklären welches ich mit einem kleinen Beispielcode nachgestellt habe.
Ich habe die Funktion auf eine
VCL Form mit Button und Edit gelegt und lass mir nach Klick auf den Button das Result ins Edit schreiben.
Delphi-Quellcode:
function TForm1.GetInitIntegerOleVariant: String;
var
I : Integer;
Iole : Olevariant;
begin
varclear(Iole);
Iole := I;
Result := iOle;
end;
Ich bin darauf gestoßen, weil mir das Verhalten nämlich in einem Projekt um die Ohren geknallt ist. Laut Definition ist jede Integer Variable nach ihrer Initialisierung 0. Wenn ich sie aber in ein Olevariant werfe und nich über vartostr gehe, sondern direkt in einen String caste, dann kommt beim ersten Aufruf irgendwas wildes raus. Beim 2. Aufruf kommt immer die 0.
Gruß
PJM