Главная страница
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.031 c
4-1098620405
Пётр Семёнович
2004-10-24 16:20
2004.12.05
Выполнение поставленной ТЗ задачи


3-1099647796
alsov1
2004-11-05 12:43
2004.12.05
Помогите запихнуть иерархию в TTreeView


4-1098023519
#Мастер#
2004-10-17 18:31
2004.12.05
Hook на всё


1-1101063521
redlord
2004-11-21 21:58
2004.12.05
Tstringgrid и размер колонки


14-1100801242
Quath
2004-11-18 21:07
2004.12.05
Мастерам словесного поноса!!! Читать обязательно!!!