| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > WM_ACTIVATE в своей проге |
| Автор: December 19.10.2006, 12:36 |
| Greetings All. Есть задача перехватить WM_ACTIVATE, посланный любой форме в проге. Прописывать специальный message handler в каждой форме (их 20+) не хочется. Application.OnMessage и ApplicationEvents.OnMessage эту мессагу не ловят. Есть ли способ как-нить централизованно перехватывать это сообщение? |
| Автор: Romikgy 19.10.2006, 12:55 |
| имхо хук |
| Автор: Yanis 19.10.2006, 23:17 |
| А если использовать компонент TApplicationEvents? |
| Автор: December 20.10.2006, 00:23 | ||
|
| Автор: Yanis 20.10.2006, 00:30 |
| Просто я проверял... И у меня всё ловится. |
| Автор: digs 20.10.2006, 01:37 |
| Да просто создать наследника от TForm, который это все сделает, а потом эти 20+ от него наследовать. Вроде быстро получится |
| Автор: December 20.10.2006, 02:21 |
Серьёзно? А тестовый проект у тебя случаем не сохранился? Я тоже экспериментировал digs, да, это один из вариантов решения, но есть ещё один дополнительный нюанс: в проге иногда появляются MessageBox'ы от чужих ActiveX объектов, и хочется ловить ИХ мессаги также. |
| Автор: Yanis 20.10.2006, 02:35 |
| Может я неправильно понял.... Нужно ловить WM_ACTIVATE, если переключение идёт между not modal окнами одного проекта? |