- TObjekt ist nunmal nur ein Zeiger auf ein Objekt
(nur weil man das Objekt löscht, ändern sich nicht alle Zeiger ... und du änderst nunmal nur A)
- A und B kennen sich nicht
* TOpjekt/Pointer ist ein Zeiger
* ein Zeiger ist nur eine Adresse, also für den PC blos eine Zahl
tja, was erwartest du denn nun hier?
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var
a, b: Integer;
begin
a := 123456;
b := a;
Memo1.Lines.Add(IntToStr(a)); // --> 123456
Memo1.Lines.Add(IntToStr(b)); // --> 123456
a := 0;
Memo1.Lines.Add('');
Memo1.Lines.Add(IntToStr(Integer(a))); // --> 0
Memo1.Lines.Add(IntToStr(Integer(b))); // --> 123456
end;
Und jetzt die Frage:
was möchstest du denn erreichen?
a) daß B den wert von A hat (siehe blackfin)
oder
b) daß das Objekt erst freigegeben wird, wenn auch B auf "nil" steht (siehe Interfaces) ?