Главная страница
    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.057 c
15-1175870706
Pazitron_Brain
2007-04-06 18:45
2007.05.06
Кто-нибудь паял самодельный блок питания для ноутбука?


2-1175695178
Romm
2007-04-04 17:59
2007.05.06
Програмное управление


3-1171534913
dzhagr1
2007-02-15 13:21
2007.05.06
Связь таблиц в database desktop


15-1175875277
Суслик
2007-04-06 20:01
2007.05.06
Как написать адрес в России на английском?


15-1176264390
Slider007
2007-04-11 08:06
2007.05.06
С днем рождения ! 11 апреля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский