Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TMenuItem оконная процедура


Автор: svoloch 26.8.2008, 18:47
возникла необходимость вызывать контекстное меню в меню TPopup, для чего было решено обрабатывать событие правого щелчка мыши для TMenuItem. Но после некоторого раскапывания вопроса обнаружилось что оконные процедуры не могут быть вызваны для TMenuItem. более того в OnClick невозможно отловить какая клавиша нажата. и даже более того!! OnClick формы несрабатывает на клик в TMenuItem. и как же спрашиваеться отследить нажатие правой кнопки мыши и сделать это созделенное контекстное меню.. что-бы без выкрутасов.. (хотя если будет некуда девать я на все готов)

Автор: Snowy 27.8.2008, 13:48
Нет такой необходимости.
Это всего лишь неграмотное планирование и незнание принципа работы меню.
Ответ - никак.

Автор: svoloch 28.8.2008, 06:37
спасибо за ответ.. лучше чем ничего. хотя подобное я уже не раз читал. но надежда умирает последней

Автор: svoloch 28.8.2008, 07:05
Нажатие клавиш можно проверить через GetKeyState (VK_LBUTTON, VK_RBUTTON)
мне лично помогло. может и еще кому поможет

Автор: Snowy 28.8.2008, 13:04
svoloch, это ты щас к чему ляпнул?
При вызове меню, у тебя нет контроля над процессом - меню управляет винда.
Тред, вызвавший меню, передаёт управление. Максимум можно подписаться на ограниченный набор колбэков.
Если не понятно, объясню проще - когда вызвано меню, твой код не работает.
Поэтому хоть чего напиши, но выполняться оно не будет.

Автор: svoloch 28.8.2008, 14:03
ну что я могу сказать в свое оправдание.. мне надо было сделать контекстное меню из меню по правой кнопке. в принципе я этого добился. только вот неудача.. меню пропадает.. ха-ха-ха.. действительно, а чего я еще хотел. 
да, честно скажу незнаю чо такое тред, колбэк. а вот сделать нормальное контекстное меню из меню все-таки не то что очень хочеться.. а надо. чувствую пахнет разработкой своего меню. просто везде писали что никак да никак.. на мгновение стало казаться что выход есть.. но..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)