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

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

Как сделать чтобы форма получила фокус и стала поверх другх окон? [D7, Win2k]


Slonco ©   (2004-10-22 13:32:00) 

Делаю клиентскую программку, которая должна вывести окно с сообщением о тревоге. Надо: подать звуковой сигнал, вывести окно поверх других и сделать его активным.
Звук я подал (на бипер и на звуковуху), форму вывел, а вот как заставить ее AlwaysOnTop быть и сделать ее активной не знаю :(

Допоможить будласка!
Дякую.


Slonco   (2004-10-25 09:20:00) [1]

Увы, ни один из предложенных способов не помог, а SwitchToThisWindow() я совсем не нашел :( Окно выводится поверх остальных и издает звук. Решил не заморачиваться на "деланьи" его активным.

Большое спасибо всем участникам!


DVM   (2004-10-22 20:53:00) [2]

к [11-12] надо бы добавить, что переключаться на окно лучше с пом. SwitchToThisWindow(), т.к. просто так BringWindowToTop, SetForegroundWindow и т.д. в Win2000-xp больше не могут в некоторых случаях выкинуть окно наверх.


Кириешки   (2004-10-22 18:34:00) [3]

Может вот так поможет

SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, Width, Height, SWP_NoSize or SWP_ShowWindow);


Кириешки   (2004-10-22 18:34:00) [4]

Может вот так поможет

SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, Width, Height, SWP_NoSize or SWP_ShowWindow);


Slonco   (2004-10-22 16:48:00) [5]

Параметр задал правильно - окно вывелось поверх остальных. :">
А как сделать чтобы оно там и оставалось?
....
Придумал!
FormStyle:=fsStayOnTop ;) но только в рантайме!!! Если в дизайн-тайме поставить fsStayOnTop, то форма просто не создается :(
Почему? Кто ответит?


Дмитрий Ботвин   (2004-10-22 15:28:00) [6]

Значит ты функции BringWindowToTop не тот параметр передаешь.


Slonco   (2004-10-22 15:03:00) [7]

Рад бы да только при запуске на исполнение программы стало выводиться окно отладки CPU ?????? Как его убрать? Не ставил я его! Говорит Thread и какой-то номер. Причем здесь мои потоки?


Дмитрий Ботвин   (2004-10-22 13:59:00) [8]

Как это BringWindowToTop не помогло??? Напиши кусок кода, в
котором ты хочешь её использовать?


Дмитрий Ботвин   (2004-10-22 13:57:00) [9]

Можно например так: Form1.BringToFront или опять же API-функцией
SetActiveWindow


Slonco   (2004-10-22 13:54:00) [10]

Упс, извините, BringWindowToTop не помогло. Не помогло и BringToFront :(


Ogin   (2004-10-22 13:54:00) [11]

Если не ошибаюсь есть такая апишка SetForegroundWindow


Slonco   (2004-10-22 13:51:00) [12]

Спасибо, Дмитрий, заработало. Только Активной она почему-то не становится :( Не знаешь как?

MBo - я таким методом ее и рисовал.


MBo   (2004-10-22 13:48:00) [13]

ShowModal


Дмитрий Ботвин   (2004-10-22 13:45:00) [14]

Попробуй с помощью API-функции BringWindowToTop, вроде помогает


Наверх

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