Einzelnen Beitrag anzeigen

FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#19

AW: 2. Form schliessen Variable=Nil

  Alt 23. Aug 2011, 07:40
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.

Geändert von FredlFesl (23. Aug 2011 um 07:50 Uhr)
  Mit Zitat antworten Zitat