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?