Jede Form bekommt ja von Haus aus eine globale Variable zugewiesen.
Wenn man die verwendet (man kann aber auch selber noch ein paar einführen) dann kann man diese per OnDestroy auch gleich auf nil setzen:
Delphi-Quellcode:
type
TFEmail = class( TForm )
...
procedure FormDestroy(Sender: TObject);
...
end;
var
FEmail : TFEmail;
procedure TFEmail.FormDestroy(Sender: TObject);
begin
if FEmail = Self then
FEmail := nil;
end;
Um die Form dann anzuzeigen nimmt man folgende Sequenz:
Delphi-Quellcode:
if not Assigned( FEmail ) then
FEmail := TFEmail.Create( Application ); // Als Owner Application, dann gibt es garantiert keine Speicherlecks
if not FEmail.Visible then
FEmail.Show;
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)