Вниз
Скачать: CL | DM;

Форма поверх всех окон   Найти похожие ветки 

← →
Stalker01 ©   (2005-07-07 17:50) [0]

Как сделать форму, которая была бы поверх ВСЕХ остальных окон, делал sfStayOnTop, но при загрузки некоторых приложений, особено игр, форма все равно была под ними. Заранее спасибо.


← →
Алхимик ©   (2005-07-07 17:52) [1]

А что будет если запустить ДВЕ программы , формы которых должны быть поверх ВСЕХ остальных окон? Что то типа Царь горы? :)


← →
TUser ©   (2005-07-07 18:01) [2]

По таймеру делай Show.


← →
begin...end ©   (2005-07-07 18:05) [3]

WM_WINDOWPOSCHANGING отлавливать не поможет?


← →
Stalker01 ©   (2005-07-07 18:54) [4]


> TUser ©

Не помогает

> begin...end ©  

А можно подробнее?


← →
TUser ©   (2005-07-07 18:59) [5]

> Не помогает

А мне помогает. Честное слово!


← →
DiamondShark ©   (2005-07-07 19:03) [6]


> Алхимик ©   (07.07.05 17:52) [1]

Что будет если всесокрушающий снаряд попадёт в абсолютно непробиваемую стену?
Типа того.


← →
begin...end ©   (2005-07-07 21:12) [7]

> Stalker01 ©   (07.07.05 18:54) [4]
> А можно подробнее?

Я не знаю, корректно так делать или нет, но попробовать можно.

Вначале делаем SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW). А потом обрабатываем сообщение WM_WINDOWPOSCHANGING. Для этого в код формы нужно добавить обработчик:

type
 TForm1 = class(TForm)
 ...
 private
   procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
 ...
 end;

procedure TForm1.WMWindowPosChanging(var Message: TWMWindowPosChanging);
begin
 inherited;
 Message.WindowPos.hwndInsertAfter := HWND_TOPMOST
end.


← →
Stalker01 ©   (2005-07-08 14:30) [8]

2begin...end
Идею понял, но у мня при этом на некоторых приложениях комп зависал, поэтому я сделал SetWindowPos на таймер, конечно некрасиво, зато работает.
Проблема в том, что моя форма выводиться поверх всех окон, но если имеется окно с частой перерисовкой (например игра), то моя форма просто зарисовываеться, графикой этого окна, хоть и находиться сверху. Пробовал делать по таймеру Repaint формы, но при этом она очень сильно мерцает, можно ли решить данную проблему?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1120468392
PEKAHT
2005-07-04 13:13
2005.07.25
Скролинг в TreeView


14-1120026331
Ega23
2005-06-29 10:25
2005.07.25
С днем рождения! 29 июня


1-1120466806
NightStranger
2005-07-04 12:46
2005.07.25
Как загрузить файл из интернета


1-1120825411
arhis
2005-07-08 16:23
2005.07.25
TMultiReadExclusiveWriteSynchronizer


1-1120587813
SpyBoy
2005-07-05 22:23
2005.07.25
как программно нажать клавишу?




   Наверх