Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо