Delphi-Quellcode:
class operator TVarX.implicit(const z: integer): TVarX;
begin
Result.FormMaster := nil;
Result.Value := z;
end;
Ohne FormMaster:=nil kann es sein, daß FormMaster einen undefinierten Zufallswert enthält. (nicht NIL)
Und nun fällt es auch auf, warum dein .object zwangsweise verschwinden muß.
Zitat:
Hab dann die Variable lokal angelegt, und einfach mit
v.object := irgendwas;
und
v:=100;
initialisiert.
Das ist auch richtig so, denn du weißt ja dem "kompletten" Record einen neuen Wert zu und alles was vorher drin stand, ist somit hinfällig.
Im Prinzip entspricht dein Code ja Folgendem, egal ob es jetzt ein Objekt oder Record ist. (wobei eher Interface, statt Objekt, wegen der automatischen Speicherverwaltung)
Delphi-Quellcode:
v.FormMaster := irgendwas;
v := TVarX.Create(100); // Parameter für "Value"
// bzw.
v.FormMaster := irgendwas;
v := TVarX.Create;
v.Value := 100;