![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как узнать сообщение
sydenis © (2008-06-09 16:15:00)Двум событиям контрола присвоен один обработчик, напр, на вхождение и выхождение мыши. Но хотелось бы чтоб этот обработчик внутри себя отличал WM_MOUSLEAVE от ..ENTER. Как бы из Senderа вытянуть полученный месадж?
sydenis (2008-06-09 16:55:00) [1]
> Но проще сделать разные обработчики. Если они имеют общую
> часть, то ее можно вынести в отдельный метод.
вот сейчас и сделано, просто хотелось уже что-то поизящней придумать..
Anatoly Podgoretsky (2008-06-09 16:33:00) [2]> sydenis (09.06.2008 16:15:00) [0]
Два разных обработчика и третья процедура с общей частью.
Поросенок Винни-Пух (2008-06-09 16:23:00) [3]смотреть позицию мышинного курсора
Юрий Зотов (2008-06-09 16:23:00) [4]Если эта информация нигде не хранится, то и вытаскивать ее неоткуда. Значит, или Sender должен хранить ее внутри себя, или ее надо устанавливаеть где-то снаружи, в момент прихода самого сообщения (например, переключать флажок в Application.OnMessage).
Но проще сделать разные обработчики. Если они имеют общую часть, то ее можно вынести в отдельный метод. Например:
В OnEnter:
Handler(Sender, True);
В OnExit:
Handler(Sender, False);
Общий обработчик:
pocedure TForm1.Handler(Sender: TObject; IsEnter: boolean);