Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Prüfen ob eine Form schon vorhanden ist


Niko S. - Mo 19.01.09 18:26
Titel: Prüfen ob eine Form schon vorhanden ist
Also ich möchte bei einer MDI anwendung meine Forms nicht sofort angezeigt bekommen und wenns nötig ist auch wieder zerstören. Nur wie Prüfe ich ob die Form bzw diese Variable schon gesetzt/vorhanden ist ?

Bevor ich

Delphi-Quelltext
1:
Application.CreateForm(TForm2, Form2);                    

mache ist die Variable oder Class nicht gesetzt...

Ich kann ja durch den befehl beliebig viele Fenster erschaffen die wie Form2 sind aber ich möchte dass es nur 1 mal ist und nicht beliebig viele, da ich nicht alle ansteuern kann wen nich die zur laufzeit erschaffe.


JayEff - Mo 19.01.09 18:46

Hierzu empfiehlt sich, die Variable (die Delphi-Intern ja ein Pointer ist!) auf nil zu prüfen, oder (sauberer&lesbarer):

Delphi-Quelltext
1:
2:
3:
4:
   if Assigned (aFormVariable) then
     //Form schon erstellt
   else
     //erstmal erstellen


jasocul - Di 20.01.09 08:50

Dann muss man beim Zerstören der Form aber sicherstellen, dass die Variable auch wieder nil gesetzt wird. Sonst passiert beim zweiten Versuch die Form zu erzeugen nichts.


Gausi - Di 20.01.09 08:54

...was sich ja einfach machen lässt, wenn man nicht MyForm.Free sondern FreeAndNil(MyForm) benutzt. :D


jasocul - Di 20.01.09 08:58

Nun verrate doch nicht gleich alles. :P