Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Prüfen ob Form bereits existiert.

  Alt 22. Jan 2011, 12:01
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)

Geändert von Sir Rufo (22. Jan 2011 um 14:58 Uhr)
  Mit Zitat antworten Zitat