Und was mache ich jetzt ? Ich habe mir mal den Source von free angesehen :
Delphi-Quellcode:
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
Bei NIL passiert also tatsächlich rein gar nichts. Nun gut. Ich habe gedacht, dann nehme ich eben NIL und Destroy. Und weils so schön ist
habe ich mir das dann auch noch in der
RTL angeguckt :
Delphi-Quellcode:
destructor TObject.Destroy;
begin
end;
Und jetzt ?
Fakt ist, daß das Programm so wie ich es gepostet habe so geht. Wie es aussieht weil ich eben den Wert auf NIL setze und ich ihn dadurch abfrage. In der Hilfe steht allerdings auch drin, man müsse selber diese Objects wieder freigeben.
Zitat von
OH:
Hinweis: Das TStringGridStrings-Objekt ist nicht der Eigentümer der Objekte des Arrays Objects. Objekte, die dem Array Objects hinzugefügt werden, sind auch dann noch vorhanden, wenn das TStringGridStrings-Objekt freigegeben wird. Sie müssen explizit von der Anwendung freigegeben werden.