Einzelnen Beitrag anzeigen

iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Form soll sich selbst zerstören

  Alt 4. Nov 2022, 13:58
Delphi-Version: 7
Hallo,

ich möchte, dass sich mein Form im OnClose-Eventhandler selbst zerstört.
Ich denke, das geht so:

Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Release;
end;
Das scheint auch zu funktionieren, aber:
Wie finde ich heraus, ob die Form noch da ist oder schon geschlossen wurde und sich zerstört hat???

So gehts jedenfalls nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Assigned(Form2) then
  begin
    ShowMessage('Form 2 exists, opening...');
    Form2.Visible:=true;
    Form2.BringToFront;
  end
  else
  begin
    ShowMessage('Form 2 does not exist, creating...');
    Form2:=TForm2.Create(self);
    Form2.Visible:=true;
    Form2.BringToFront;
  end;
end;
Nach release bleibt der Zeiger Form2<>NIL, die Form ist aber nicht mehr im Speicher, d.h. bei erneutem Button1Click folgt unweigerlich die Access Violation.
Wie löse ich das?
  Mit Zitat antworten Zitat