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

Вниз

Не происходит сообщения WM_SETFOCUS,WM_KILLFOCUS   Найти похожие ветки 

 
Vlad Oshin ©   (2008-09-04 15:03) [0]

Есть форма, на ней есть эдиты
есть ApplicationEvents1: TApplicationEvents;


procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;  var Handled: Boolean);
begin
 case MSG.message of
   WM_SETFOCUS,WM_KILLFOCUS:
   begin
     memo1.Lines.Add("aaaaaaaaaaa");
   end;
 end;//case MSG.message of
end;


WM_KILLFOCUS Окно потеряло фокус ввода от клавиатуры  
WM_SETFOCUS Окно получило фокус ввода от клавиатуры

Ничего не происходит,  как бы не скакал по Editam
хоть с помощью мышки, хоть Tab, хоть переключившись туда-назад в другое приложение.

Почему?


 
Palladin ©   (2008-09-04 15:30) [1]

У Edit"ов своя очередь сообщений и Application здесь ни причем. Если хочешь ловить сообщения для Edit"ов см. TControl.WindowProc (+ F1)


 
Vlad Oshin ©   (2008-09-04 15:39) [2]

но клики по ним отлавливаются

   WM_LBUTTONDOWN,WM_RBUTTONDOWN:
   begin
     memo1.Lines.Add("dasfafadf" );
   end;
и WM_CHAR тоже ловится

может не все сообщения, на самом деле передаются..
А WindowProc мало интереса переписывать,
в том и дело, что это ApplicationEvents1Message последний рубеж
Не могу я для всех(в том числе еще не написанных) форм Оконную процедуру менять


 
Leonid Troyanovsky ©   (2008-09-04 15:51) [3]


> Vlad Oshin ©   (04.09.08 15:39) [2]

> Не могу я для всех(в том числе еще не написанных) форм Оконную
> процедуру менять

Менять надо не формам, а TEdit. Напиши потомка, поменяй WndProc.
А, во-ще, Screen.OnActiveControlChange.

--
Regards, LVT.


 
Vlad Oshin ©   (2008-09-04 16:39) [4]


> Менять надо не формам, а TEdit.

да это понятно, но и им не могу. Их вообще не я могу писать

Screen.OnActiveControlChange
кстати, да, как же забыл.. Спасибо. Надо проверить как это будет в dll


 
Palladin ©   (2008-09-04 16:45) [5]

Что именно не ты им можешь писать? TControl.WindowProc это вообще-то свойство, а не метод. F1 то нажимал? Простой обход по компонентам с заменой свойства и ничего более.


 
Vlad Oshin ©   (2008-09-04 17:01) [6]

понял, спасибо
но по другому уже начал делать


 
Leonid Troyanovsky ©   (2008-09-04 17:31) [7]


> Vlad Oshin ©   (04.09.08 16:39) [4]

> кстати, да, как же забыл.. Спасибо. Надо проверить как это
> будет в dll

Никак, если не передать из приложения Screen.
И, во-ще, объекты в длл - MD.

--
Regards, LVT.


 
Vlad Oshin ©   (2008-09-04 18:00) [8]


> Никак, если не передать из приложения Screen.

передаю, передаю..application, screen


> объекты в длл - MD

ну а как же?
Вот есть приложение, 13 метров с пакетами если.
Надо написать еще одну функцию, возможность выбрать чего-то из сиска(DbGrid).
пишем dll, втыкаем туда форму, подписываемся на сообщение от осн.программы(которая и знать не знает о всех своих dll) об установлении ею коннекта с БД, получаем хендл соединения, делаем запрос, отображаем список.
Выбранный id отсылаем сообщением в программу, которая отсылает сообщение (ничего не зная о том что оно обозначает!) всем своим формам.
Кто подписан на это сообщение - тот извлекает из него id, работает как надо.

dll - 50кб
все - 13 метров

Разослать нужно ~ 2000 мест только в Москве,
еще Питер, Саратов, ННовгород..

И как?


 
Leonid Troyanovsky ©   (2008-09-04 18:16) [9]


> Vlad Oshin ©   (04.09.08 18:00) [8]

> И как?

Например, длл без объектов, тот же самый хук на
WM_SETFOCUS,WM_KILLFOCUS or/and subclassing.

Словом, то, на что длл заточена.
Или не длл, а bpl or ocx.

--
Regards, LVT.


 
Игорь Шевченко ©   (2008-09-05 09:54) [10]

Application.OnMessage ловит только сообщения, посланные через PostMessage, а эти сообщения (WM_SETFOCUS, WM_KILLFOCUS) посылаются через SendMessage



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
2-1251666355
wah
2009-08-31 01:05
2009.10.25
Многострочность и StringGrid


15-1251318607
Юрий
2009-08-27 00:30
2009.10.25
С днем рождения ! 27 августа 2009 четверг


15-1250966987
Kerk
2009-08-22 22:49
2009.10.25
Мучает вопрос


1-1221634382
Sashka
2008-09-17 10:53
2009.10.25
Последовательность идентификации и устранения ошибки


15-1251459961
Наиль
2009-08-28 15:46
2009.10.25
Лишние символы при исполнении bat-файла