Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Окна всегда поверх всех окон


roughneck ©   (2007-11-28 09:51:00) 

Создаю ряд окон способом:
 ArrayForm: array of TForm1;
 ArrayForm[i] := TForm1.Create(Application);

Проблема сделать эти окна всегдаповерх других окон. Как, например, окно трафика у Download Master-а.


DVM   (2007-12-01 21:12:00) [1]


> roughneck

Выше всех только менюшка монитора.
Выше нее - окно распечатанное на принтере.


Strate   (2007-11-30 07:54:00) [2]

roughneck   (29.11.07 14:46) [3]
SetWindowPos(ArrForms[i].Handle, ArrForms[i-1].Handle....


Может всёже

SetWindowPos(ArrForms[i].Handle, HWND_TOPMOST,....?


Anatoly Podgoretsky   (2007-11-29 15:31:00) [3]

Твоя программа может запускаться в двух экземпляров, как тогда ты обойдешь данное противоречие?
А если у другой программы точно такие же претензии, то как.

Лечение - вешаться.


roughneck   (2007-11-29 14:46:00) [4]

FormStyle := fsStayOnTop
не помогает - это работает только в пределах данного процесса.

А вот по поводу ВСЕГДА - не уберу. Мне и нужно чтоб окно было видно всегда. Исключением мугут быть игры или другие проги которые работают с видео страницами (DirectX)

Пока сдлал вот так - работает, но это как-то не корректно:
по таймеру выполняю:
 Application.NormalizeTopMosts;
 if Length(ArrForms) > 0 then
   SetWindowPos(ArrForms[0].Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
 i := 1;
 while i < Length(ArrForms) do
 begin
   SetWindowPos(ArrForms[i].Handle, ArrForms[i-1].Handle, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
   i := i + 1;
 end;


Anatoly Podgoretsky   (2007-11-28 11:54:00) [5]

Убери слова ВСЕГДА тогда сможешь на что то расчитывать.


авыф   (2007-11-28 10:07:00) [6]

FormStyle := fsStayOnTop


Наверх

Титульная страница Поиск, карта сайта Написать письмо