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