![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PopupMenu [D7, WinXP]
Narayan © (2003-10-25 19:00:00)
Как отловить выбор пункта PopupMenu ?
Тобишь для MainMenu надо обрабатывать WM_COMMAND,
а для PopupMenu ?
Guerrillero (2003-10-27 01:56:00) [1]
WM_Command посылается окну, чей хэндл указан в предпоследнем параметре TrackPopUpMenu(Ex)
Narayan (2003-10-27 01:34:00) [2]
Пока писал доп. сведения для подумал вот что.
MainMenu - оно для формы, а PopupMenu у меня для ListView.
Получается сообщение WM_COMMAND приходит ListView.
А процедура описана для формы. Или я ничего не понимаю.
Что скажете.
2 Игорь Шевченко
Дополнительные сведенья:
Описаваю процедуру
...
private
procedure WMCommand(var Msg: TWMCommand); message WM_COMMAND;
...
procedure TForm1.WMCommand(var Msg: TWMCommand);
begin
...
// тело процедуры
...
inherited;
end;
Выставаляю брэйкпоинт в теле процедуры. Запуск.
Наблюдаю вот что:
При выборе пункта из MainMenu всё шоколадно, заходим в процедуру, выполняем нужные действия. При выборе пункта из PopupMenu ничего не происходит. В процедуру мы не попадаем.
Игорь Шевченко (2003-10-26 21:30:00) [3]
Narayan © (25.10.03 22:46)
Ты мне предлагаешь на основе этих скудных сведений диагностировать ситуацию ?
Nick Denry (2003-10-26 15:59:00) [4]
2>Kallega
SubClassing твой спаситель
Kallega (2003-10-26 11:14:00) [5]
У меня похожая проблема: надо запретить нажатие правой кнопки на комбобоксе. Но
procedure TfrmMain.WMRBUTTONDOWN(var Msg: TMessage)
срабатывает только при нажатии кнопки, когда курсор находится на форме. (KeyPreview=False)
Если кликаать по комбобоксу, то вызывается контекстное меню Windows (Вырезать, Копировать, Вставить...)
Как же его запретить???
Narayan (2003-10-25 22:46:00) [6]
2 Игорь Шевченко
Нет. Вообще в эту процедуру не заходит.
procedure WMCommand(var Msg: TWMCommand); message WM_COMMAND;
Игорь Шевченко (2003-10-25 21:40:00) [7]
То же самое, WM_COMMAND