Announcement

Collapse
No announcement yet.

Verhindern, dass ein Fenster minimiert wird

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verhindern, dass ein Fenster minimiert wird

    Hallo,

    ich habe eine Anwendung mit mehreren Fenstern. Soll nun die Anwendung minimiert werden, muss eines dieser Fenster (StayOnTop) immer oben und sichtbar bleiben, auch wenn die Anwendung im Systray verschwindet.

    Wie realisiere ich das am besten?

    Vielen Dank!

    Ciao

    Benni

  • #2
    siehe meine Antwort bei deinem anderen Problem. Einfach wm_WindowPosChanging überschreiben, Flags darf nicht swp_HideWindow enthalten, swp_NoZOrder muß ausmaskiert werden und hWndInsertAfter muß auf hWnd_TopMost gesetzt werden. ABER VORSICHT ! dieser Code sollte erst nach dem vollständigem Sichtbarmachen des Forms aktiviert werden. Ansonsten raucht die VCL ab, soll heissen unter Win9x gibts im Zusammenhang mit der VCL arge Probleme.

    Gruß Hage

    Comment


    • #3
      Kannst Du mir das mal mit einem Codeschnipsel demonstrieren

      Comment


      • #4
        <pre>

        <code><font size=2 face="Courier New"><b>type
        </b><font color="#008080"><i>//....
        </i></font><b>procedure </b>WMWindowPosChanging(<b>var </b>Msg: TWMWindowPosChanging); <b>message </b>wm_WindowPosChanging;
        <font color="#008080"><i>//....
        <br>
        </i></font><b>procedure </b>TConsoleMainForm.WMWindowPosChanging(<b>var </b>Msg: TWMWindowPosChanging);
        <b>begin
        with </b>Msg.WindowPos^ <b>do
        begin
        </b><font color="#008080"><i>// verhindere das Unsichtbar machen
        </i></font>Flags := Flags <b>and not </b>swp_HideWindow;
        <font color="#008080"><i>// verhindere das Verschieben
        </i></font>Flags := Flags <b>or </b>swp_NoMove;
        <font color="#008080"><i>// verhindere das Größenverändern
        </i></font>Flags := Flags <b>or </b>swp_NoSize;
        <font color="#008080"><i>// verhindere die Veränderungen der Z-Order, fensterreihenfolge
        </i></font>Flags := Flags <b>or </b>swp_NoZOrder;
        <font color="#008080"><i>// setze das fenster immer in den Vordergrund, bitte obigen Code deaktivieren
        </i></font><b>if </b>Flags <b>and </b>swp_NoZOrder = <font color="#0000FF">0 </font><b>then
        </b>hWndInsertAfter := hWnd_TopMost;
        <b>end</b>;
        <b>inherited</b>;
        <b>end</b>;
        </font>
        </code></pre&gt

        Comment


        • #5
          Danke

          Comment

          Working...
          X