Главная страница
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.011 c
1-33119
zzet
2003-07-30 08:36
2003.08.11
Изменить внешний вид.


1-33185
qwe
2003-07-28 20:17
2003.08.11
запуск через сеть


8-33226
Alexander Yudanov
2003-04-16 14:51
2003.08.11
Сжатие речи. Как это можно сделать???


14-33282
Cyber
2003-07-17 11:24
2003.08.11
Всем, всем, всем! Предложение о сотрудничестве


14-33323
GebbelZ
2003-07-24 00:21
2003.08.11
дополнительные кнопки клавиатуры & WinAmp