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

Вниз

Не происходит сообщения 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 вся ветка

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

Наверх





Память: 0.47 MB
Время: 0.079 c
2-1251155492
sanx
2009-08-25 03:11
2009.10.25
Реализация списка в многопоточном приложении


2-1251089353
eRoR_rrr
2009-08-24 08:49
2009.10.25
Замена содержимого файла когда он открыт.


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


2-1251099283
abhtr
2009-08-24 11:34
2009.10.25
CreateProcess


15-1251525036
TUser
2009-08-29 09:50
2009.10.25
Умный хостинг?





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