wo ist jetzt aber dein pub.free?
Korrekt wäre es (wie bereits erwähnt) so:
Delphi-Quellcode:
object1 := TObject1.Create();
try
object2 := TObject2.Create();
try
//do something with object2 and object1
finally
object2.Free;
end;
finally
object1.Free;
end;
von folgendem würde ich abraten:
Delphi-Quellcode:
object1 := TObject1.Create();
object2 := TObject2.Create();
try
//do something with object2 and object1
finally
object1.Free;
object2.Free;
end;
Denn wenn bei TObject2.Create() ein Fehler auftritt wird Object1 nicht frei gegeben obwohl da beim instanzieren kein Fehler aufgetreten ist.