Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

Как сделать чтобы форма получила фокус и стала поверх другх окон?   Найти похожие ветки 

 
Slonco   (2004-10-22 13:32) [0]

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

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


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

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


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

ShowModal


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

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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

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


 
DVM ©   (2004-10-22 20:53) [13]

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


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

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

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



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

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.038 c
6-1096396967
Наташа
2004-09-28 22:42
2004.12.05
Какой самый быстрый способ скачивания файлов?


1-1100795595
dolphin
2004-11-18 19:33
2004.12.05
Файловые переменные


14-1100773948
Drakon
2004-11-18 13:32
2004.12.05
Латинские крылатые выражения


3-1099922646
alsov1
2004-11-08 17:04
2004.12.05
Не работает TADOQuery


1-1101200069
main
2004-11-23 11:54
2004.12.05
файловая система и TREEVIEW