Главная страница
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.016 c
15-1176195527
ocean
2007-04-10 12:58
2007.05.06
Office systems (word processors, spreadsheets, e-mail, etc.)


3-1171802805
Rav
2007-02-18 15:46
2007.05.06
TAdoQuery - "обновление"??? при удалении записи


2-1176707699
Kolan
2007-04-16 11:14
2007.05.06
Мне нужен GUID в виде числа, как опьсать?


2-1176317178
Strate
2007-04-11 22:46
2007.05.06
Совместная работа с файлами


2-1176896692
deras
2007-04-18 15:44
2007.05.06
Как найти файлы?