Für Objects würde ich aber keine TStringList verwenden, sondern eine TList.
AllesFreigeben würde ich nie in einer for-Schleife machen sondern:
Delphi-Quellcode:
procedure AllesFreigeben;
var
aObj : TMyObject;
begin
//Schleife über die TStringList zum Freigeben der Objekte...
while Liste.Count > 0 do
begin
aObj := Liste.Objects[0] as TMyObject;
if Assigned(aObj) then FreeAndNil(aObj);
Liste.Delete(0); //auch Listeneintrag löschen
end;
//evtl. auch gleich Liste freigeben
Liste.Free;
end;
Ein destructor ist nur dann zweckmäßig, wenn im Create des Objects etwas erzeugt wird, dass vor dem Freigeben des Objechts ebenfalls freigegeben werden muss.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)