Form in einer Form?



  • Guten Abend Community,

    ich habe eine kleine Anwendung mit Labels, Buttons, TListView.

    Ich habe es bei vielen Softwaren schon gesehen, aber bisher weiß ich leider nicht wíe man das macht.

    unzwar möchte ich gerne über ein PopUPMenü(Hoffe ich irre mich jetzt nicht mit der Bezeichnung, meine aber die oberste Leiste in einem Programm damit)
    z.B.

    Datei | Ansicht | Einstellungen | etc

    Wenn ich auf Einstellung drücke, dass ein neue Form/Frame kommt, wo ich zb Einstellungen über die Positionen von den Labels bestimmen kann oder diverse andere Einstellungen über das Programm generell.

    Wie kann man sowas umsetzten?

    Oder habe, wie macht man das bei einer TPageControl Komponente, wenn man zb auf der 2. TabSheet Seite Einstellungen für die 1. TabSheet Seite vornimmt, auch umgesetzt werden.

    Vielen Dank



  • hohes_C schrieb:

    unzwar möchte ich gerne über ein PopUPMenü(Hoffe ich irre mich jetzt nicht mit der Bezeichnung, meine aber die oberste Leiste in einem Programm damit)
    z.B.

    Datei | Ansicht | Einstellungen | etc

    Wenn ich auf Einstellung drücke, dass ein neue Form/Frame kommt, wo ich zb Einstellungen über die Positionen von den Labels bestimmen kann oder diverse andere Einstellungen über das Programm generell.

    Das Menü ist das MainMenu, siehe TMainMenu.
    So ein Einstellungen- bzw. Optionendialog wird i.d.R. als separates Fenster ausgeführt, nicht als Fom-in-Form. Dazu erstellst du in deinem Projekt einfach eine Form2, inkludierst deren Header in Form1.cpp und rufst sie beim Klick auf 'Einstellungen' auf:

    #include "unit2.hpp"
    ...
    Form2->Show();
    // oder
    Form2->ShowModal();
    

    Wenn du in Form2.cpp den Header von Form1 inkludierst, kannst du von Form2 auf Elemente von Form1 zugreifen:

    #include "unit1.hpp"
    ...
    Form1->Label1->Caption = "von Form2 aus geändert";
    


  • Vielen Dank Jansen für deine ausführliche Erklärung!

    Ich werde das gleich mal umsetzen!



  • Es komtm zu einer Zugriffverletzung, ich kann dies nicht umsetzten... wisst ihr warum es zu diesem Fehler kommt..

    hab die form2.h in die form von form1.h includiert...

    und wie Jansen schon erwähnt hat, rufe ich mit Form1-Show(); das Fenster auf, tut sich jedoch nichts..



  • Zu wenig Informationen.

    Was ist Dein MainForm? Was ist Form2? Was ist Form1?

    Wenn ich raten müsste, würde ich sagen, Du rufst Form2 aus Form1 modal auf und versuchst dann Form1 aufzurufen.



  • Also ich adde nochmal zusätzliche Informationen.

    Habe ein Projekt...das ist mein Hauptprojekt.. nun möchte ich dass ich von der MainForm eine neue Form aufrufe.

    reicht das so aus?



  • _inek68 schrieb:

    reicht das so aus?

    Nein. Du hast immer noch keinerlei relevante Informationen gepostet. Die oben beschriebene Vorgehensweise ist korrekt und funtkioniert. Wenn es bei Dir nicht funktioniert, machst Du irgendetwas anders - und ich kabe keine Kristallkugel.

    Benutz den Debugger: http://www.junix.ch/bcb/help/debug.html



  • Ich habe so etwas Ähnliches letztens gemacht. Du könntest einfach ein Formular dynamisch erstellen und wenn es in deiner Form sein soll, dann machst Du dein Hauptformular einfach zum Owner. Das sollte gehen.

    lg, freakC++


Anmelden zum Antworten