Autor Beitrag
Thorben
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 25.07.02 15:20 
Hi!

Ich habe ein Programm das in Laufzeit Fenster erstellt, bei denen ich gerne per Knopfdruck Always on Top aktivieren bzw. deaktivieren moechte.

Normalerweise muesste das ja mit
ausblenden Quelltext
1:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, 0);					


gehen... gehts aber irgendwie nur hin und wieder und dann auch nur kurz?!? Kann das daran liegen, dass sowohl Application (-> Taskbar) als auch MainForm versteckt sind?? Oder haengt es damit zusammen, dass ich die Windows per CustomForm.CreateNew(NIL) erzeuge?

Vielen Dank!
hitstec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 295



BeitragVerfasst: Do 25.07.02 17:20 
Versuch's dochmal damit:

ausblenden Quelltext
1:
CustomForm.FormStyle:=fsStayOnTop;					
Thorben Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 25.07.02 19:39 
ausblenden Quelltext
1:
.FormStyle:=fsStayOnTop;					


funktioniert leider unter den Bedingungen auch nicht...
City Light
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 22.02.03 21:35 
der hier geht
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
 
{
Ein Fenster einer Anwendung immer zuoberst anzeigen,
auch bei minimiertem Hauptfenster

Manchmal möchte man, daß geöffnete (Unter-)Fenster
einer Anwendung auf dem Desktop bleiben, wenn das
Hauptfenster minimiert wird, oder daß ein Fenster
immer im Vordergrund bleibt, auch wenn es nicht den Fokus hat.

Ich will mal kurz zeigen, wie man das zur Laufzeit einstellen kann:
}

//OnTop..
SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width,
             Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
//..und zurück:
SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width,
             Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

//OnDesktop..
SetWindowLong(Handle, GWL_HWNDPARENT, 0);
//..und zurück:
SetWindowLong(Handle, GWL_HWNDPARENT, Application.Handle);