Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
[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 вся ветка

Форум: "KOL";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.042 c
4-1165573440
leonidus
2006-12-08 13:24
2007.05.06
Работа с буфером обмена


2-1176444828
trula
2007-04-13 10:13
2007.05.06
excel вставка рисунка под нужным углом в нужную точку


2-1176288154
>>DEATH<<
2007-04-11 14:42
2007.05.06
Посоветуйте!!!!!!!!!!!


6-1162829430
NetUser
2006-11-06 19:10
2007.05.06
Пакет IP


15-1175977434
Danilka
2007-04-08 00:23
2007.05.06
Есть ли Бог на Марсе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский