Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

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

  Alt 15. Nov 2006, 19:52
Zitat von jbg:
..Man kann es nämlich mit FreeAndNil auch übertreiben...
Das könnte man wirklich unterschreiben. Das Speichermanagement von Delphi ist nicht schlecht und macht vieles automatisch. Die Frage hat sich hier aber auch gestellt. Es gibt Destroy, Free, FreeAndNil. Genau ! Wo liegt jetzt der Unterschied ? Selbst mit Borland-Unterstützung war das nicht genau zu klären, was man nun am besten wo und wann verwenden soll. Bei allen drei Alternativen gab es hier und da einen Fehler. Je nach Konstellation.

Ist schon etwas länger her, aber ich glaube das auf NIL setzen reichte nicht aus, sofern darauf geprüft wird und ein zu entfernendes TObject ist nicht da. Bevor mir einen einen Strick daraus dreht : das nächste ist ohne Gewähr. Ist das TObject in keinster Weise initialisiert, dann kommen vermutlich Fehler. Folgende Konstruktion lief bisher ohne jeden Fehler :

Delphi-Quellcode:
if Objekt <> nil then begin
  Objekt.Free;
  Objekt := nil;
end;
Das FreeAndNil könnte da vielleicht eine Zeile sparen aber nicht ohne die Abfrage <> nil ! Damit wird aber jetzt nicht rumgespielt, denn es gilt : "Never change a running system".
Gruß
Hansa
  Mit Zitat antworten Zitat