Hallo,
Keine Ahnung, ob es im konkreten Fall hilft, aber ich gebe Objekte grundsätzlich nach Stack-Prinzip frei. In umgekehrter Reihenfolge der Initialisierung:
Delphi-Quellcode:
var
Object1: TMyFirstClass;
Object2: TMySecondClass;
Object3: TMyThirdClass;
begin
Object1 := TMyFirstClass.Create;
Object2 := TMySecondClass.Create;
Object3 := TMyThierClass.Create;
...
if Assigned(Object3) then FreeAndNil(Object3);
if Assigned(Object2) then FreeAndNil(Object2);
if Assigned(Object1) then FreeAndNil(Object1);
end.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.