Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fenster soll im Fordergrund bleiben - geht nicht


HeftCD - Sa 20.11.10 14:54
Titel: Fenster soll im Fordergrund bleiben - geht nicht
Hallo.

Folgender Code soll die Form 2 permanent in den Vordergrund bringen.


Delphi-Quelltext
1:
SetWindowPos(Form2.Handle, HWND_TOPMOST, 0000, SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);                    



Dort bleibt sie aber nur so lange, bis ich ein anderes Programm in der Taskleiste anklicke.
Klicke auf mein Programm zurück ist sie parallel zu meiner Form 1 auch wieder im Vordergrund.


Aber das kann doch nicht alles sein, oder?
Was läuft denn da falsch?

Moderiert von user profile iconMartok: Delphi-Tag gesetzt


Niko S. - Sa 20.11.10 14:57

Es gibt dochden FormStyle
fsStayOnTop
Warum benutzt du nicht den? Ist sogar ne Eigenschaft von den Forms.


jaenicke - Sa 20.11.10 15:06

user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:
Folgender Code soll die Form 2 permanent in den Vordergrund bringen.
Davon sehe ich nichts. Dein Code setzt das Fenster in diesem Moment auf die vorderste Position in der Z-Order.

Das heißt aber nicht, dass es permanent immer wieder nach vorne gebracht wird. Sondern eben nur, wenn du das mit der Zeile auslöst.

Wenn es permanent vorne bleiben soll, musst du den Fensterstil verändern. Entweder manuell oder mit dem genannten Wert fsStayOnTop. Wenn aber ein anderes Fenster auch OnTop sein soll, dann kann das eben mittels des obigen Codes vor dein Fenster gelangen.

Dagegen kannst du natürlich auch nichts machen. Denn zweimal "ganz ganz vorne" gibt es eben rein logisch nicht. :nixweiss:


HeftCD - Sa 20.11.10 15:55

ja, danke - super ... damit klappt's.

Form2.FormStyle := fsStayOnTop;



Klar, daß ein anderes Fenster das das "nach mir" anmeldet noch "eins weiter davor" kommen könnte.
Aber mir reicht das schon, wenn das überhaupt im Vordergrund bleibt.
Das einzige, was ich fand war meine Codezeile ... oben.
naja, und das wirkte ja auch für sämtliche Forms innerhalb meines Programms. :D