|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.03.2011, 23:23 | #1 |
Новичок
Джуниор
Регистрация: 12.03.2011
Сообщений: 3
|
Обработчик OnMouseWheel (Down, Up)
Как сделать, чтобы работал обработчик OnMouseWheel когда мышь находится над объектом типа TPaintBox. Я сделал потомка от TPaintBox с опубликованными свойствами OnMouseWheel, OnMouseWheelDown, OnMouseWheelUp. Сделал соответствующую процедуру, но обработчик не работает. В чем здесь может быть дело?
|
13.03.2011, 00:05 | #2 | |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
Цитата:
Каким это образом вам удалось "опубликовать" несуществующие события ? Последний раз редактировалось asmodey1; 13.03.2011 в 21:14. |
|
13.03.2011, 00:52 | #3 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Код:
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
13.03.2011, 02:27 | #4 |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
И что ? Работает ?
С таким же успехом можно написать: Код:
|
13.03.2011, 20:04 | #5 | |
Новичок
Джуниор
Регистрация: 12.03.2011
Сообщений: 3
|
Цитата:
Код:
Код:
Я смастерил нечто, что работает. Вот код, в которым я тупо повторил приватные процедуры TControl, сделав их публичными: Код:
Последний раз редактировалось Stilet; 14.03.2011 в 07:50. |
|
13.03.2011, 20:16 | #6 |
Новичок
Джуниор
Регистрация: 12.03.2011
Сообщений: 3
|
chertovich, идея понятна - обрабатываем событие прокрутки, идущее от формы. Осталось только добавить условие - курсор - над PaintBox-ом. Казалось бы, что тип Sender-а даст нам TPaintBox - вот вам и контроль нахождения курсора над нужным компонентом, но Sender - не от PainBox-а. Второй вариант - проверять вхождение и выхождение мыши на компонент, что и предложил chertovich. И всё же, всё же, почему же не работает обработчик у потомка с опубликованными свойствами для прокрутки колёсика мыши?
|
14.03.2011, 00:08 | #7 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
У меня D2009 (в отличие от D7) и в нем класс TControl имеет такой функционал, несмотря на то, что это не TWinControl. Наверное, эти события эмулируются путем предка компонента. Для тех у кого нет таких событий, можно, например определять положение курсора и соотностить к положению самого компонента.
Есть еще вариант: написать свой компонент наследованием TWinControl и добавить к нему канву. А можно сделать еще с полосами прокрутки, наследуя TScrollingWinControl ))
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
Последний раз редактировалось chertovich; 14.03.2011 в 00:13. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
OnMouseWheel не реагирует когда мышь на компоненте | Selestis | Lazarus, Free Pascal, CodeTyphon | 2 | 03.01.2011 00:18 |
Обработчик Отмены | Progs1024 | Работа с сетью в Delphi | 1 | 13.12.2009 17:53 |
Почему обработчики OnMouseWheel происходят несколько раз подряд? (Delphi7) | DomiNick | Общие вопросы Delphi | 5 | 23.08.2009 22:11 |
Обработчик события... | Flash_ | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 12 | 12.03.2007 21:24 |