Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form immer im vordergrund - Wirklich immer (https://www.delphipraxis.net/94073-form-immer-im-vordergrund-wirklich-immer.html)

delphis spassbremse 15. Jun 2007 15:04


Form immer im vordergrund - Wirklich immer
 
Hallo,

ich habe mir ein kleines Programm geschrieben, was mir
eine kleine Layerads statisik auf dem Bildschirm anzeigt.

Formstyle auf fsstayontop (ganz normal halt)

Bloß dann beim Booten kommt dann mein Programm zuerst hoch und danach
alle anderen.
Da gibts doch das böse MSN und setzt sich einfach davor.
(Machen andere Programme ebenso)

Nun zur eigentlichen Frage...
wie bekommt man es hin, dass das Form wirklich immer
im Vordergrund ist. z.B. auch wenn ein Vollbildspiel
geöffnet wird usw....

Hab evtl. gedacht man nehme einen Timer und haut ein show oder bringtofront rein...
ist aber ziemlich prozesslastig und stört andere Anwendungen.

Hat da jemand eine Idee, wie das Programm immer im Vordergrund bleibt?

MFG

Björn

SirThornberry 15. Jun 2007 15:23

Re: Form immer im vordergrund - Wirklich immer
 
wie du schon festgestellt hast gibt es kein "immer oben" weil andere Programme das auch wollen. Wenn du also 2 solche Programme hast flackern diese ständig untereinander weil sich ständig das eine vor das andere setzt.
Bei Vollbild mit DirektX/OpenGl scheiterts dann ständig. Das 3D Spiel wird mit einer anderen Auflösung ausgeführt und solange dieses Programm im Vordergrund ist stellt dein Windows eben auf diese Auflösung um. Wenn du dein Programm jetzt in den Vordergrund bringst wird wieder die Auflösung deines Programmes gefahren, es wechselt also von der Auflösung des 3D Programmes zur Auflösung deines Programmes (die Auflösung deines Programmes ist die Std-Windows-Auflösung)

kalmi01 15. Jun 2007 17:11

Re: Form immer im vordergrund - Wirklich immer
 
Zitat:

Zitat von SirThornberry
wie du schon festgestellt hast gibt es kein "immer oben" weil andere Programme das auch wollen.

Nö, probiers mal mit:
Delphi-Quellcode:
 SetWindowPos( Handle,            <<< eigenes Window-Handle
               HWND_TOPMOST,      <<<< immer Vorn
               Left,
               Top,
               Width,
               Height,
               0
             )

 SetWindowPos( Handle,           <<< eigenes Window-Handle
               HWND_NOTOPMOST,   <<< wieder normal
               Left,
               Top,
               Width,
               Height,
               0
             )
bei mir flackert da garnichts.

himitsu 7. Nov 2011 08:47

AW: Form immer im vordergrund - Wirklich immer
 
Ich weiß, ist schon etwas älter, aber dennoch :angle2:

Zitat:

Nö, probiers mal mit:
StayOnTop nutzt auch einen State, wlcher dieses setzt.

Wobei immer das letzt Programm ganz oben angezeigt wird, welches als letztes diesen Style verpaßt bekommen hat.
Wollen mehrere Programme ganz nach oben schubst das letzt Programm die Vorgänger erstmal etwas runter ... weswegen die nachher gestarteten Programme eben doch davorkommen.

einzige Lösung: man muß den Style bei sich als letztes (neu) setzen.

sHoXx 7. Nov 2011 12:18

AW: Form immer im vordergrund - Wirklich immer
 
genau damit hab ich mich auch vor ein paar tagen beschäftigt, bei mir hat folgendes geholfen

im OnShow der Fhab ich eingefügt:

Delphi-Quellcode:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz