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

Вниз

Как отловить потерю фокуса у формы   Найти похожие ветки 

 
[e]Bu$ter ©   (2006-09-12 13:58) [0]

Господа, подскажите пожалуйста, как отловить и обработать сообщение о потере фокуса у формы.

Форма без заголовка и пользователь иногда не видит, что у неё забрали фокус, и продолжает жать клавиши попутно обхаивая программу за то, что она его не слушается :(

Вопрос скорее всего детский, просто в VCL у меня всё работало... а когда помню с KOL пробовал, так челый час возился, но ничего в итогде и не получилось. Сейчас проблема снова всплыла, нужно побороть.


 
parovoZZ ©   (2006-09-12 22:12) [1]

Мессага такая есть wm_Activate
Есть ещё функция  GetActiveWindow
Как средствами KOL - не знаю.


 
MTsv DN ©   (2006-09-13 09:11) [2]

2 [e]Bu$ter
> Господа, подскажите пожалуйста, как отловить и обработать
> сообщение о потере фокуса у формы.


function TForm1.KOLForm1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
begin
Result := false;
if Msg.message = WM_KILLFOCUS then
 if GetActiveWindow <> Form.Handle then
  beep(400,100);
end;


2 parovoZZ
> Как средствами KOL - не знаю.
Пардон, а какими знаешь???

С Уважением MTsv DN


 
[e]Bu$ter ©   (2006-09-13 12:24) [3]

Круто, половина задачи решена! Большое спасибо, MTsv DN.

Однако, вторая половина: как вернуть фокус окну?

Перепробывал:

form.BringToFront;
SetFocus(form.Handle);
BringWindowToTop(form.Handle);
SetActiveWindow(form.Handle);

и даже
SetForegroundWindow(form.Handle);
но увы, фокус не возврашается :(
Т.е. я ткну мимо окна мышью, оно пищит, но фокус обратно себе не берёт. Может есть ещё какие-то способы кроме опробованных выше?
Но мне кажется, что хоть один из них да должен был сработать, но почему-то не работает... Может кто-то знает почему? (напомню, окно без заголовка, если это существенно)



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
2-1176723674
IgorMish
2007-04-16 15:41
2007.05.06
Закрывается приложение


8-1156257164
Исмаил
2006-08-22 18:32
2007.05.06
видеограббер


15-1175869015
oldman
2007-04-06 18:16
2007.05.06
Тест :)


2-1176646018
Ezorcist
2007-04-15 18:06
2007.05.06
WinExec возвращает 33


4-1165311288
Leshiy
2006-12-05 12:34
2007.05.06
Работа с MainMenu "чужого" приложения.