![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват нажатия на кнопку мыши [D7, WinXP]
gonzales © (2004-10-26 17:27:00)Задачка следующая,
надо сделать систему контекстного хэлпа, то есть при нажатии на кнопку появляется курсор со знаком вопроса и в дальнейшем при нажатии на другие компоненты происходил переход к соответствующему разделу справки по кейворду. Так вот, вопрос такой: как перехватить нажатие на кнопку мыши и понять над каким контролом она находится
Asinus (2004-10-26 23:53:00) [1]на http://www.ec-software.com/comppage.htmесть библиотека компонентов
Юрий Зотов (2004-10-26 20:18:00) [2]Сорри, конечно WM_HELP, а не WM_CONTEXTMENU.
Юрий Зотов (2004-10-26 18:54:00) [3]> gonzales (26.10.04 17:27)
Ничего не надо перехватывать и даже ничего не надо писать (кроме самого хелпа). См. [3] - надо просто подключить справку к программе, расставить у контролов свойство HelpContext и включить у форм флаг biHelp.
И все заработает само собой. А если вместо системной кнопки контекстной справки непременно нужна своя собственная, то просто из ее OnClick пошлите форме сообщение WM_CONTEXTMENU.
clickmaker (2004-10-26 18:39:00) [4]а включение biHelp в BorderIcons + указание HelpContext для контролов - разве не проще?
gonzales (2004-10-26 18:37:00) [5]все ты правильно поняла, но просто не хоцца писать на каждый компонент обработчик. Ведь у меня есть HelpKeyword каждого компонента, есть функция FindVCLWindow( const Pos: TPoint ): TWinControl;
Модуль: Controls
Функция возвращает оконное средство управления для местоположения, определенного параметром Pos. Если для данного местоположения нет оконных средств управления, то функция возвращает nil.
Вот, нужно только перехватить нажатие на кнопку и передать управление этой функции.
А вот как, не могу найти:(
alena.svt (2004-10-26 18:33:00) [6]Я ничего не поняла, но если чего то поняла то зачем так сложно
при клике на компонете или MouseMove
If Screen.Cursor = crТвойКурсор then
твои действия со справкой
else
код обработки события