Zitat von
Viktorii:
Aber wer hat nun recht? DeddyH oder Oreaden bzw. das Orakel
öhhhm, behaupten beide etwas anderes? ... nein
Das Orakel weist nur darauf hin, dass die TObjectList die enthaltenen TObject's beim TObjectList.Free auch mit TObject.Free aus dem Speicher wirft.
Also wenn dieses Object an die TObjectList gehängt wird, dann ist beim TObjectList.Free alles aus dem Speicher.
Delphi-Quellcode:
TMyObject = class( TObject )
private
FEinObject : TObject;
public
constructor Create;
destructor Destroy; override;
end;
constructor Create;
begin
inherited;
FEinObject := TObject.Create;
end;
destructor Destroy;
begin
FEinObject.Free;
inherited Destroy;
end;
Bei diesem Object funktioniert das nicht, was aber nicht an der Liste, sondern an dem Object selber liegt, denn das entfernt sich nicht sauber aus dem Speicher!
Delphi-Quellcode:
TMyObject = class( TObject )
private
FEinObject : TObject;
public
constructor Create;
end;
constructor Create;
begin
inherited;
FEinObject := TObject.Create;
end;
DIe TObjectList macht schon alles richtig, sie kann aber nicht zaubern!
cu
Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)