Die Form-Instanz wird eben
nicht freigegeben, ausser es kommt innerhalb der Methode zu einer
Exception, dann wird abgebrochen,
Delphi-Quellcode:
LFoo := TFoo.Create;
try
...
Result := Lfoo;
LFoo :=
nil;
// auf nil setzen
finally
// bei einer Exception wird die Instanz freigegeben,
// sonst nicht, denn dann zeigt LFoo ja auf nil ;o)
LFoo.Free;
end;
Warum schreibt man den Code dann nicht so, wie das, was er machen soll und sparrt dabei auch gleich noch die leicht verwirrende doppelte Variable?
Delphi-Quellcode:
Result := TFoo.Create;
try
...
except
Result.Free;
raise;
end;