Was passiert, wenn Form2 zwischen Close und Destroy angezeigt werden soll?
Wieso nicht Form2 nicht einfach im FormClose auf Nil setzen?
Weiterhin sollte das Anzeigen und die Logik, ob Form2 schon da ist, in TForm2 selbst implementiert werden. Entweder in einer Class Procedure 'ShowNonModal', oder in einer Funktion, die den Zugriff auf Form2 steuert (Ich würde Letzteres vorziehen)
Delphi-Quellcode:
Function Form2 : TForm2;
Implementation
Var
_Form2 : TForm2;
Function Form2 : TForm2;
Begin
If _Form2 = Nil Then
_Form2 := TForm2.Create(Nil);
Result := _Form2;
End;
...
Procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
Begin
Action := caFree;
If Self=_Form2 then
_Form2 := Nil;
End;
Nun kann ich Form2 auch dann anzeigen, wenn es gerade geschlossen, aber noch nicht freigegeben wurde.
[edit]
Oh, die Verfeinerung von Sir Rufo fehlt[/edit]
Das Bild hängt schief.