| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Поймать сообщение некоторым элементом |
| Автор: SilentRoach 22.6.2006, 02:27 | ||||
Есть такой модуль:
на загрузке главной формы инициализируется данный элемент. посылаю сообщение такой вот своей, перекрывающей стандартную, функцией:
и, естественно, Logger'ом это сообщение поймать не могу. а что сделать чтобы поймать, может кто подскажет? делать обработку всех событий в главной форме не хочется - не красиво. возник в голове еще вариант оверрайдить Perform на главной форме с выполнением по-умолчанию и вдобавок вызов метода из Logger'а определенного, который будет PeekMessage. Но по-моему, это тоже не очень красиво. посоветуйте что-нибудь, пожалуйста, м? |
| Автор: Rrader 22.6.2006, 07:34 |
| Сообщения предназначены для окон, у класса TLogger мы не можем определить оконную процедуру |
| Автор: Snowy 22.6.2006, 09:13 |
| Для данных вещей существует функция AllocateHWnd. Позволяет работать с оконными сообщениями. Пронцип действия простой - создаёт невидимое окно и устанавлевает твой обработчик. Тебе остаётся только слать на него сообщения и получать их установленной функцией. В хелпе есть пример. Так работает TTimer и TClientSocket. |
| Автор: SilentRoach 24.6.2006, 03:21 |
| Разобрался. Оказалось самым удобным просто послать сообщение в TLogger Dispatch'ем. |