Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Unterschied zwischen FreeAndNil(Objekt) und Objekt.Free

  Alt 15. Nov 2006, 16:49
Hallo,

Vorsicht mit solchen Behauptungen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Button: TButton;
begin
  FreeAndNIL(Button); // Schutzverletzung !
end;
Was du meintest war, dass .Free auch bei NIL-Objekten klappt.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Button: TButton;
begin
  Button:= NIL;
  Button.Free; // OK
end;
Was das etwas undurchsichtig macht ist, dass Klassenvariablen
automatisch initialisiert werden, Zeiger und damit auch Objekte also z.B. NIL sind.

Das FreeAndNIL ist einfach die Zusammenfassung von 2 Befehlen.


Heiko
Heiko
  Mit Zitat antworten Zitat