Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват сообщений компонентом. [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Awod ©   (2004-07-26 20:47:00) 

Добрый день!
Есть невизуальный компонент наследник от TComponent. Как сделать так чтобы компонент обрабатывал сообщения системы?
Я предположил что можно создать невидимое окно и с его помощью отлавливать сообщения. В конструкторе компоненента я написал такой код:

begin
   FWndHandMessage := CreateWindow('static', '',
     WS_POPUP,0,0,0,0,0,0,0,nil);
   FClientInstance := Classes.MakeObjectInstance(ClientWndProc);
   FDefClientProc := Pointer(GetWindowLong(FWndHandMessage,GWL_WNDPROC));
   SetWindowLong(FWndHandMessage, GWL_WNDPROC, Longint(FClientInstance));
end;

Нно сообщения в ClientWndProc приходят лишь в случае если сообщение посылается лично этому окну (SendMessage(FWndHandMessage,1500,1,1);), а хотелось бы чтобы он обрабатывал и сообщения отправленней всем (SendMessage(HWND_BROADCAST,1500,1,1);).
Как это сделать?


Игорь Шевченко   (2004-07-27 11:09:00) [1]


> Как сделать так чтобы компонент обрабатывал сообщения системы?


А смысл ?


Awod   (2004-07-27 09:13:00) [2]

А как сделать так чтобы сообщение приходило именно ко ВСЕМ компонентам (несколько приложений использующих один компонент должны обмениваться сообщениями, так чтобы это было не заметно для самого приложения)?


Fay   (2004-07-26 21:49:00) [3]

BROADCAST приходит к Application. Там и лови.


Наверх

Титульная страница Поиск, карта сайта Написать письмо