Formular / Forms



  • Hallo,

    ich weiß es wirklich nicht daher bitte ich zu entschuldigen, wenn dieser Thread doppelt ist.
    Ich habe mir FAQ und Suche im Forum zu Gemüte gezogen. Dennoch habe ich meine Frage nicht beantworten können. So hoffe ich hier Hilfe zu finden.
    (Andocken war nicht die Lösung)

    -Ich habe mehrere Formulare.
    -Mein Programm startet (sichtbar Formular 1)
    -Nun öffne ich Formular 2 (Form2->ShowModal();)

    Ich möchte das Formular 2 auf Formular 1 in der gleichen größe geöffnet wird.
    Außerdem sollte man dieses nicht verschieben können.



  • Na ja, die Größe bekommst Du angepaßt in dem Du Height und Width von Form1 ausliest und Form2 zuweist (direkt vor dem ShowModal).
    Nicht verschiebbar: Da will mir nix zu einfallen. Ist vom OS aber auch nicht vorgesehen und dürfte sich nur schwer, oder gar nicht umsetzen lassen.

    Wozu denn dieser Aufwand, wenn ich fragen darf?



  • wenn es nicht verschoben werden soll kann man doch einfach BorderStyle auf bsNone setzen. Wobei dann die Fensterleiste fehlt.



  • Ich habe das Problem, wenn ich ein Programm schreibe bsp.:
    2 Forms (beide gleich) Height 400 Width 700

    Der Anwender ruft das Programm auf und das 2. Fenster wird geöffnet.
    Wenn ich dieses 2. Fester beim compilieren nicht exakt auf das 1. gelegt habe, wird dieses ggf. versetzt davon geöffnet.

    Wenn ich das Programm im Vollbild anzeigen lasse, sieht alles ziemlich "sch*****" aus.



  • du kannst indas ereigniss oncreate.

    form1-Top=300;
    form2->Top=300;
    form1->Width=500;
    form2->Width=500;
    form1->Left=300;
    form2->Left=300; 
    form1->border=bsnone;//<--so was inder art
    form2->border=bsnone://<--so was in der art
    

    müsste gehen fals ich dich richtig verstanden habe.



  • @smirnofe: Wenn Du diesen Code tatsächlich so in der OnCreate des Form1 verwendest, hagelt es Fehlermeldungen, weil Form2 zu diesem Zeitpunkt noch gar nicht existiert...

    @Mike_200x: Warum machst Du Form1 während vor dem Aufruf von Form2 nicht unsichtbar und anschließend wieder sichtbar? Munßt nur darauf achten, was in der FormShow() von Form1 steht, weil die dabei ausgeführt wird.

    Form2->Width = Form1->Width;
    Form2->Height = Form1->Height;
    Form1->Visible = false; // oder Form1->Hide();
    Form2->ShowModal();
    Form1->Visible = true; // oder Form->Show();
    

Anmelden zum Antworten