![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа pop-up меню по нажатию клавиш, правой мыши.. [D5, Win2k]
Nicky © (2003-06-09 18:38:00)проблемы такие
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-10 15:23:00) [1]>>MenuItem не происходит от TControl и в OnClick не шлет Button, Shift, etc.. а шлет лишь себя любимого.
Понятно, я советовал это только лишь как способ отследить сам факт нажатия.
>>может, есть APIшная процедура, которая возвращает состояние мыши?
А вот это уже ближе. Я тебя как раз к этому вопросу и подводил.
GetAsyncKeyState()
Nicky (2003-06-10 12:45:00) [2]вероятно не нашлось чем. TMenuItem не происходит от TControl и в OnClick не шлет Button, Shift, etc.. а шлет лишь себя любимого.
может, есть APIшная процедура, которая возвращает состояние мыши?
я ее не нахожу...
Yanis (2003-06-10 10:02:00) [3]Извиняюсь за некорректность. Но вроде понять можно. Если есть чем понимать.
Song (2003-06-09 23:58:00) [4]2Yanis © (09.06.03 23:06)
Из Вашей процедуры неясно откуда возьмётся переменная Button
Yanis (2003-06-09 23:06:00) [5]To Nicky
>1 - пункт меню активизируется по нажатию мыши - левой или правой. хочу иметь разную обработку от левой и от правой мыши.
procedure onclick;
begin
if button=mbLeft then showMessage("left_mouse button") else
ShowMessage("right_mouse button")
end;
Надеюсь понятно.
clickmaker (2003-06-09 19:36:00) [6]Ловить WM_MENUCHAR у формы, которая владеет меню. Это для клавиш. А вот для кнопок мыши... Тут стандартное TPopupMenu не потянет, думаю...
Song (2003-06-09 19:14:00) [7]TMenuItem.onClick