Form bei Programmstart aufrufen



  • Hallo,

    in

    __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
    

    lade ich INI Dateien usw. Ganz am Schluss möchte ich ein weiteres Form
    (Form4) zum Hauptform (Form1 Main) als Passwortabfrage aufrufen:

    if(PrgComp==false && PrgPassw==true) { Form4->Show(); }                        // bei Programmstart Passwortabfrage
    

    Das klappt auch. Aber nach dem Beenden des Dialoges kommt die Fehlermeldung
    "Eigenschaft Visible in OnShow und OnHide nicht zulässig"

    Ich habe in diesen Routine OnShow (OnHide habe ich nicht) aber
    nichts mit Visible usw. Starte ich das Programm ohne die Passwort-
    abfrage sondern z.b. über's Menü direkt mit

    Form4->Show();
    

    dann kommt nach dem Beenden des Dialoges keine Fehlermeldung.
    Habe den Aufruf auch schon in OnShow und OnActivate vom Form1 (Main)
    gelegt, ebenfalls kein Erfolg. Wenn ich es in OnShow lege, wird
    der Dialog angezeigt, der Focus liegt aber noch auf dem Form1 im
    Hintergrund.

    Hat jemand eine Idee bzw. wie kann ich beim Start ein weiteres
    Form aufrufen?

    Gruss Stefan



  • OnShow Ereigniss

    mit Form4->ShowModal();

    In dem OnShow können keine Eigenschaften gesetzt werden die das Anzeigen (visible) beeinflussen.



  • Hi ,
    der normale Weg dürfte sein, Form4 zum Hauptformular zu machen und eine Instanz des Paßwortabfrageformulars im Konstruktur des Hauptformulars zu erzeugen, aufzurufen und anschließend wieder freizugeben.
    Falls das Paßwort falsch ist, kann mit Application->Terminate die Anwendung beendet werden. (Dies funktioniert nur im Kostruktor, nicht in OnShow()... OnActivate ist die falsche Stelle für so etwas.)



  • Danke für die schnelle Antwort; klappt einwandfrei. 👍

    Gruss Stefan


Anmelden zum Antworten