Hallo,
wenn du ein
VCL-Fenster im Vordergrund haben möchtest, dann kannst du einfach seinen FormStyle auf fsStayOnTop setzen. Es passiert dann in etwa das gleiche wie bei deinem Aufruf von SetWindowPos(). Selbst wenn du deine Taskleiste so konfiguriert hast, dass sie immer im Vordergrund sein soll, wird aber dein Fenster davor liegen, sobald du es aktivierst. Ein TopMost-Fenster liegt vor allen NonTopMost-Fenstern, aber wenn es mehrere TopMost-Fenster gibt, dann haben auch diese Fenster eine Z-Ordnung. Microsoft meint dazu im
PSDK mehr oder weniger deutlich, dass die Z-Ordnung vom Benutzer gesteuert werden soll. Warum soll dein Programm die Kontrolle übernehmen? Überhaupt nicht anrüchig ist das natürlich, wenn dein Programm selbst ein AppBar ist.
Nochmal im Klartext: Solange dein TopMost-Fenster aktiv ist, wird es vor der Taskleiste gezeichnet. Mein Code-Beispiel hilft da eigentlich überhaupt nicht. Die
VCL wertet die Nachricht WM_SETTINGCHANGE selbst aus und die Constraints spielen nur bei nicht maximiertem Fenster eine Rolle.
Freundliche Grüße