Thema: Delphi Nur free oder FreeandNil

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Nur free oder FreeandNil

  Alt 29. Jun 2004, 22:05
Delphi-Quellcode:
sl.Free;
sl := nil;
Oder
Delphi-Quellcode:
procedure D4FreeAndNil(Object: TObject);
begin
  Object.Free;
  Object := nil;
end;
Es verhält sich so: Free entfernt nur das Objekt aus dem Speicher, die Objektvariable beinhaltet abr noch eine "gültige" Zeiger-Adresse, die aber nach dem Free je doch auf einen ungültigen Speicherbereich verweist. Da die Objektvariable immer noch einen gültigen Zeiger beinhaltet liefert ein Test mit Assigned auch nach einem Free noch True zurück. FreeAndNil setzt die Objektvariable eben noch zurück - auf nil eben, wie der Prozedurname schon vermuten läßt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat