Fenster in den Vordergrund bringen



  • Hallo zusammen,

    ich habe eine Anwendungen, dessen Haupt-Form den kompletten Bereich des Monitors einnimmt (clClient). Zur Laufzeit werden verschiedene Standard-Dialoge (z.B. TFontDialog, Save-Dialog etc.) aufgerufen. Leider ist es so, dass diese Dialoge nicht gleich angezeigt werden. Meines Erachtens werden diese erst im Hintergrund angezeigt.... erst wenn ich auf ALT drücke, werden die Dialoge nach vorne geholt.

    Eigene Dialoge, die ich über Forms auf dem Bildschirm anzeige (ShowModal()), werden gleich im Vordergrund angezeigt!! Kann mir einer sagen, wie ich auch die Standarddialoge gleich in den Vordergrund holen kann??

    Im Moment rufe ich z.B. den FontDialog über:

    if(FontDialog->Execute()){
    // TODO
    }
    

    auf. Muss ich eine Einstellung am Hauptformular vornehmen, oder muss ich die Dialoge anders aufrufen? Komisch ist auch, dass die Titelleiste des Haupt-Forms beim Aufruf eines Standarddialogs grau wird... also sozusagen den Fokus verliert...

    Vielen Dank für eure Hilfe!!



  • Hallo,

    1. soweit ich weiß werden Standarddialoge auch modal aufgerufen?! Hast du an deinem Hauptform noch zusätzliche Einstellungen vorgenommen? StayOnTop zum Beispiel?

    2. Es kann immer nur ein Fenster den Fokus haben...

    LG, Micha



  • Hi Micha,

    wenn ich eine Eigenschaft gesetzt haben, dann unbewusst 🙂
    Ist StayOnTop eine konkrete Eigenschaft, oder nur eine erfundene? Falls sie existiert, unter welcher Eigenschaft kann man diese setzen?

    Mir ist bewusst, dass nur ein Fenster den Fokus haben kann... aber ich weiß halt nicht, ob die Standard-Dialoge beim Aufruf den Fokus erhalten oder nicht.
    Wie gesagt... wenn ich nach dem aufruf die Taste ALT drücke, wird der Dialog dann in den Vordergrund geholt.



  • Hallo,

    StayOnTop gehört zur Eigenschaft "FormStyle" des Formulares.

    Ja, der Standarddialog erhält den Fokus beim öffnen.

    LG, Micha



  • Ist irgendwie nicht nachvollziehbar - auch bei StayOnTop- Formularen.

    Wann rufst Du die Dialoge auf?
    a) bei ButtonDown
    b) OnClick oder
    c) Bei ButtonUp

    Bei lezterem sollte es keine Probleme geben.
    Bei a) könnte die gedrückte Maustaste (löst i.a. Capture aus) Ärger machen

    Gruss
    Frank


Anmelden zum Antworten