Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#5

Re: Free, FreeAndNil und mehrere Variablen

  Alt 17. Mai 2010, 14:08
- 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) ?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat