| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Перехват сообщения кнопки мыши Delphi 6 |
| Автор: Aehn 25.7.2008, 12:38 | ||
| Надо перехватить сообщение при нажатии на правую кнопку мыши Пытаюсь делать такую вещь:
Вещь компилируется, работает, но при нажатии на правую кнопку делает все как и делала до написания этой процедуры. Никакого сообщения не показывает. Что я делаю не так? |
| Автор: Rennigth 25.7.2008, 12:54 |
| Aehn, значит кто-то раньше перехватывает WM_RBUTTONDOWN. Что у тебя еще в проекте используеться? Если код не брльшой, выкладывай. Добавлено через 1 минуту и 53 секунды у тебя на форме случаем ничего не лежит, может ты кликаешь по чему-то другому? |
| Автор: Christoph 25.7.2008, 14:55 |
| Сейчас подумаем.... |
| Автор: Christoph 25.7.2008, 15:15 | ||
Сделал....Работает
ой та и твой код рабочий...если нажимаешь на форму...работает, а если клацнешь на компонент правой кнопкой, то ничего не будет обрабатываться |
| Автор: THandle 26.7.2008, 05:37 | ||
| Можно попробовать подменить WindowProc... Пример:
|
| Автор: Arigato 27.7.2008, 18:51 |
| Я извиняюсь, а почему просто не использовать события формы OnMouseDown или OnMouseUp? |
| Автор: Aehn 28.7.2008, 08:34 |
| Проблема в том, что на правой кнопке висит PopupMenu. Была идея отрубить PopupMenu на время выполнения обработчика и вызывать его в конце процедуры обработчика, но как это сделать? Ведь у Popup menu четко прописана кнопка по которой оно вызывается (Свойство TrckButton). Либо правая, либо левая тертьего не дано, чтобы оно просто было в памяти и вызывалось когда ей прикажут. Код уже приличный, тащить его сюда - себе дороже. OnMouseDown, OnMouseUp отрабатывают интересным образом, вначале вызывается popupmenu а уж потом все, что мне нужно. Положение Inherited (после/до того, что мне нужно) для правой кнопки не срабатывает, только для левой. Короче, вся надежда на свой обработчик, который пока тоже не срабатывает до вызова этого чертового popupmenu. Нужно, чтобы когда мы нажимали правую кнопку мыши у меня отрабатывалась моя процедура, потом выпадало меню, пункты которого работают для выделенного узла TreeView. |
| Автор: Aehn 28.7.2008, 14:16 |
| Как раз непонятно как отрубить. А эта штука PopupMenu1.Popup(X, Y); вызывается для левой кнопки нормально, для правой при задании X,Y Попап меню все равно непосредственно под курсором. А как ее отрубить? |
| Автор: VICTAR 28.7.2008, 14:25 |
| Как отрубить? В инспекторе объектов убрать PopupMenu. Или я чего-то не понимаю? |