Thema: Delphi FreeAndNil geht nicht

Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#6

Re: FreeAndNil geht nicht

  Alt 28. Jan 2005, 08:04
Zitat von Hansa:
Das hier geht :

Delphi-Quellcode:
procedure TfrmEin.FormHide(Sender: TObject);
var i,j : integer;
begin
  for i := sg.FixedCols to sg.ColCount - 1 do
    for j := sg.FixedRows to sg.RowCount - 1 do
      if sg.Objects [i,j] <> nil then begin
        sg.Objects [i,j] := nil;
        sg.Objects [i,j].Free;
      end;
end;
Das geht nur scheinbar, d.h. Du bekommst zwar keine Fehlermeldung aber Du erzeugst Speicherlecks. Free überprüft nämlich, ob die Referenz nil ist und ruft in diesem Fall Destroy _nicht_ auf. Die Überprüfung auf nil kannst Du Dir daher auch sparen.

Gruß, teebee
  Mit Zitat antworten Zitat