Es ist Visible, weil du a) die eigenschaft gesetzt hast und b) das Fenster bei Programmstart implizit miterzeugst.
in deiner Haupt-Unit wird irgendwo
Application.CreateForm(TDeinFenster, DeinFenster);
aufgerufen, dadurch erzeugst du das Fenster schon beim start der Hauptunit.
verhindern des erzeugens geht z.b. so:
methode nach dem End der Fenster-implementation von Form2 deklarieren
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| type TForm2 = class(TForm) private public end; procedure zeigeFenster2; implementation
procedure zeigeFenster2; begin Application.CreateForm(TForm2, Form2); try Form2.show; finally Form2.Release; end; end; |
natürlich sollte dann Form2 in Form1 in der (unteren) Uses eingebunden sein.
nun reicht ein zeigeForm2 in Form1 und das Fenster wird erst zur Laufzeit erzeugt, wenn es benötigt wird.
Nun musst du in deinem Projekt unter Optionen -> Formulare
das Form2 von 'automatisch erzeugen' nach 'verfügbare Formulare' verschieben
(bei Neu/Formular werden die immer unter 'autom. erzeugen' eingetragen)
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)