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

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

смена состояния always on top на лету... [D7, WinXP]


Makhanev Alexander ©   (2006-12-11 18:58:00) 

Трививальная задача "сделать окно поверх всех окон в винде" решается через CreateParams. Но как быть если это состояние (поверъ\не поверх) хочется менять на лету?


Anatoly Podgoretsky   (2006-12-12 00:45:00) [1]

> AndreyRu  (12.12.2006 0:42:04)  [4]

begin
  if flTop then
    flTop := false
  else
    flTop := true;
end;

Как это глаз режет

flTop := not flTop;


AndreyRu   (2006-12-12 00:42:00) [2]

var
 flTop : boolean = false;

...
...
//---------------------------------------------------------------------
.......Button1Click(Sender : TObject);
begin
 if flTop then
   flTop := false
 else
   flTop := true;
end;
//---------------------------------------------------------------------
.......FormShow(Sender : TObject);
begin
 if flTop then
   SetWindowPos(Handle,
                       HWND_TOPMOST,
                       Left,
                       Top,
                       Width,
                       Height,
                       SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
//---------------------------------------------------------------------
.......FormActivate(Sender : TObject);
begin
 if flTop then
   SetWindowPos(Handle,
                       HWND_TOPMOST,
                       Left,
                       Top,
                       Width,
                       Height,
                       SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
//---------------------------------------------------------------------
.......FormDeactivate(Sender : TObject);
begin
 if flTop then
   SetWindowPos(Handle,
                       HWND_TOPMOST,
                       Left,
                       Top,
                       Width,
                       Height,
                       SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
//---------------------------------------------------------------------


Чапаев   (2006-12-11 20:57:00) [3]

> [0] Makhanev Alexander   (11.12.06 18:58)
SetWindowPos()


Palladin   (2006-12-11 19:38:00) [4]

я может и счастливый обладатель d6, но в нем свойство formstyle прекрасно работает. в связи с этим сильно сомневаюсь что оно не работает в d7


umbra   (2006-12-11 19:19:00) [5]

SetWindowLong?


Наверх

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