![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TPopUpMenu + WM_COMMAND
Максим © (2009-06-01 19:46:00)Ради спортивного интереса хочу сделать обработчик через сообщение WM_COMMAND.
Объявляю метод в TForm3:
procedure WMCommand(var Message: TWMCommand); message WM_Command;
...
procedure TForm3.WMCommand(var Message: TWMCommand);
begin
ShowMessage(' ');
inherited;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
PopUpMenu1:=TPopupMenu.Create(Form3);
mi:=TMenuItem.Create(Form3);
mi.Caption:='123';
PopUpMenu1.Items.Add(mi);
Form3.PopupMenu:=PopUpMenu1;
end;
Но при нажатии на пункт '123' ничего не происходит. Что не так делаю?
Выдержка из спавки по TMenuItem
...
Use Command in an application that directly handles WM_COMMAND messages. When the user selects the menu item, Windows sends a WM_COMMAND to the window associated with the menu. The ItemID of the message contains the value of the Command property of the menu item that was selected.
...
Игорь (2009-06-02 22:27:00) [1]
> Игорь Шевченко © (02.06.09 22:19) [4]
> ужос на крыльях ночи
Точно, смотрю и "радуюсь" за себя
Игорь Шевченко (2009-06-02 22:19:00) [2]
> http://www.delphisources.ru/pages/sources/system/2007_year/processes_killer.
> html
ужос на крыльях ночи
Игорь (2009-06-02 22:12:00) [3]Там правда отсутствует inherited в процедурах WMCommand, WMMeasureItem и WMDrawItem
Максим (2009-06-02 07:15:00) [4]Спасибо!Помогло :)
Видимо, если форме присваиваешь попап-меню, то форма, когда открывает меню устанавливает флаг TPM_NONOTIFY. По этому форме не отправляются сообщения.
Игорь (2009-06-01 21:37:00) [5]
> Максим (01.06.09 19:46)
Посмотри здесь
http://www.delphisources.ru/pages/sources/system/2007_year/processes_killer.html