MDI-Childfenster öffnen (war: Wie kann ich...)



  • Hi,
    ich bin derzeit mit einen kleinen Problem beschäftig...

    Und zwar habe ich ein MDI Hauptformular und mehrere Unterformulare. Meine Frage ist jetzt, wie kann ich diese Unterformulare öffnen!!! Vor allem mit welchen Befehl!!!

    BWG

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!



  • Hast du die Eigenschaft "FormStyle" der Unterformulare schon auf "fsMDIChild" gesetzt?

    BCBuilder Anfänger



  • jupps,
    das geht ja soweit inzwischen auch. Doch wie kann ich es jetzt machen, das ich die MDI Formulare verstecken kann???? Sprich, so das die nicht zu sehen sind, sondern erst beim Klcik auf den entsprechenden Menüpunkt!!!!

    BWG

    ausserdem, wie kann ich einem User ein Auswahlfenster bringen, wo er den genauen Pfad der Datei angeben muss und aber grundsätzlich ein pfad schon vorgeben ist...... Und der User nur einen bestimmten Datei typ auswählen kann!!1
    BWG



  • 1. Child->Hide()



  • BW-Catcher2 schrieb:

    Doch wie kann ich es jetzt machen, das ich die MDI Formulare verstecken kann???? Sprich, so das die nicht zu sehen sind, sondern erst beim Klcik auf den entsprechenden Menüpunkt!!!!

    WebFrizi schrieb:

    Child->Hide()

    1. Verstecken kannst du die Child-Formulare nicht.
    2. Erzeuge das Kind-Formular dort, wo du es brauchst (im Button-Click-Ereignis z.B.)
    3. Beim Schließen des Kind-Formulars folgendes im OnClose-Ereignis (des Kind-Formulars) schreiben:

    Action = caFree;
    

    BCBuilder Anfänger



  • BCBuilder Anfänger schrieb:

    1. Verstecken kannst du die Child-Formulare nicht.

    Quatsch!

    ShowWindow(ActiveMDIChild->Handle, SW_HIDE);
    


  • wozu verstecken:

    also in deinem main-code (application init(),....) nimmst du die erstellung des fensters heraus, anschließend gehst du im code vom mdi-fenster

    im click ereignis des entsprechenden menupunktes fürgst du sowas hier ein:

    TMeinChildFenster *Child; //je nachdem, wie dein fenster heisst
    Child = new TMeinChildFenster(Application);
    Child->Caption="mein erstes fenster" + IntToStr(MDIChildCount);
    

    dadurch kannst du dann soviele child-fenster öffnen, bis dein speicher schlappmacht.

    aber auch an das close ereignis mit (Action=caFree;) denken.

    gruß gerd


Anmelden zum Antworten