Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.11;
Скачать: CL | DM;

Вниз

работа pop-up меню по нажатию клавиш, правой мыши..   Найти похожие ветки 

 
Nicky   (2003-06-09 18:38) [0]

проблемы такие
1 - пункт меню активизируется по нажатию мыши - левой или правой. хочу иметь разную обработку от левой и от правой мыши.
2 - аналогично хотелось бы обрабатывать нажатие на menuiteme клавиш (не hotkeys!) - Del, Ins, пробел

чувствую, что надо править этот кусок из menus.pas

procedure TPopupList.WndProc(var Message: TMessage);
...
case Message.Msg of
WM_COMMAND:
for I := 0 to Count - 1 do
if TPopupMenu(Items[I]).DispatchCommand(Message.wParam) then Exit;

а вот как править - ума не приложу...


 
Song ©   (2003-06-09 19:14) [1]

TMenuItem.onClick


 
clickmaker ©   (2003-06-09 19:36) [2]

Ловить WM_MENUCHAR у формы, которая владеет меню. Это для клавиш. А вот для кнопок мыши... Тут стандартное TPopupMenu не потянет, думаю...


 
Yanis ©   (2003-06-09 23:06) [3]

To Nicky
>1 - пункт меню активизируется по нажатию мыши - левой или правой. хочу иметь разную обработку от левой и от правой мыши.

procedure onclick;
begin
if button=mbLeft then showMessage("left_mouse button") else
ShowMessage("right_mouse button")
end;

Надеюсь понятно.


 
Song ©   (2003-06-09 23:58) [4]

2Yanis © (09.06.03 23:06)
Из Вашей процедуры неясно откуда возьмётся переменная Button


 
Yanis ©   (2003-06-10 10:02) [5]

Извиняюсь за некорректность. Но вроде понять можно. Если есть чем понимать.


 
Nicky   (2003-06-10 12:45) [6]

вероятно не нашлось чем. TMenuItem не происходит от TControl и в OnClick не шлет Button, Shift, etc.. а шлет лишь себя любимого.
может, есть APIшная процедура, которая возвращает состояние мыши?
я ее не нахожу...


 
Song ©   (2003-06-10 15:23) [7]

>>MenuItem не происходит от TControl и в OnClick не шлет Button, Shift, etc.. а шлет лишь себя любимого.
Понятно, я советовал это только лишь как способ отследить сам факт нажатия.
>>может, есть APIшная процедура, которая возвращает состояние мыши?
А вот это уже ближе. Я тебя как раз к этому вопросу и подводил.
GetAsyncKeyState()



Страницы: 1 вся ветка

Текущий архив: 2003.08.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-33080
vizier
2003-07-16 12:02
2003.08.11
Зависание соединения


1-33215
Bill
2003-07-29 13:53
2003.08.11
Работа с файлом output


1-33095
Alex-21
2003-07-28 21:30
2003.08.11
Два окна


3-33055
AkaSaint
2003-07-17 13:58
2003.08.11
Jet Access не поддерживает триггеры, генераторы и ХП?


14-33331
Scorpx
2003-07-25 09:08
2003.08.11
Согласны ли Вы с данной фразой?