Форум: "Начинающим";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];
ВнизTPopupMenu Найти похожие ветки
← →
nachinayuschij (2008-11-26 16:03) [0]Имеется PopupMenu как можно определить какой пункт меню выделен в данный момент или как определить при перемещений выделения???
← →
DimaBr © (2008-11-26 16:11) [1]Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
← →
clickmaker © (2008-11-26 16:15) [2]WM_MENUSELECT
GetMenuItemInfo()
← →
nachinayuschij (2008-11-26 16:30) [3]В примерах можно???
← →
clickmaker © (2008-11-26 16:40) [4]TForm1 = class
...
procedure WMMenuSelect(var Message: TWMMenuSelect); message WM_MENUSELECT;
procedure TForm1.WMMenuSelect(var Message: TWMMenuSelect);
begin
end;
и читаем win32 help по WM_MENUSELECT
← →
nachinayuschij (2008-11-26 16:42) [5]Спасибо! Пойду проверять...
← →
nachinayuschij (2008-11-26 17:18) [6]WM_MENUSELECT почему то срабатывает только на MainMenu
← →
clickmaker © (2008-11-26 17:27) [7]оно приходит окну, которое указано в качестве родителя для меню
посмотри, совпадает ли PM.WindowHandle с HAndle формы
← →
nachinayuschij (2008-11-26 17:39) [8]Разные и что теперь делать???
← →
clickmaker © (2008-11-26 17:45) [9]ловить сообщение у окна, которое родитель для попапменю
← →
nachinayuschij (2008-11-26 18:13) [10]У меня только одно окно, он и есть родитель. Почему то WM_MENUSELECT для него не срабатывает а для MainMenu которую поставил на ту же форму срабатывает
← →
clickmaker © (2008-11-26 18:19) [11]лезем в исходники VCL
constructor TPopupMenu.Create(AOwner: TComponent);
...
FWindowHandle := Application.Handle;
...
думаем
← →
nachinayuschij (2008-11-26 18:24) [12]А, по другому никак нельзя?????
← →
clickmaker © (2008-11-26 18:31) [13]через глобальную переменную PopupList можно попробовать
у него есть пропертя Window, можно подменить у него WndProc и там ловить WM_MENUSELECT, не забывая вызывать исходную в конце
← →
nachinayuschij (2008-11-27 16:04) [14]что то у меня никак не получается, помогите срочно надо! В примерах если можно???
← →
clickmaker © (2008-11-27 16:11) [15]а как пробуешь?
← →
nachinayuschij (2008-11-27 16:25) [16]clickmaker © (26.11.08 18:19) [11]
лезем в исходники VCL
constructor TPopupMenu.Create(AOwner: TComponent);
...
FWindowHandle := Application.Handle;
...
думаем
clickmaker © (26.11.08 18:31) [13]
через глобальную переменную PopupList можно попробовать
у него есть пропертя Window, можно подменить у него WndProc и там ловить WM_MENUSELECT, не забывая вызывать исходную в конце
вот эти я не понял как делать. А через procedure WMMenuSelect(var Message: TWMMenuSelect); message WM_MENUSELECT; не получается
← →
clickmaker © (2008-11-27 16:41) [17]да там все тупо
type
TPopupListEx = class(TPopupList)
procedure WndProc(var Message: TMessage); override;
end;
var OldPopupList: TPopupList;
procedure TPopupListEx.WndProc(var Message: TMessage);
begin
if (Message.Msg = WM_MENUSELECT) then begin
if (HiWord(Message.WParam) <> $FFFF) then
Application.MainForm.Caption := Format("We are at the item %d", [LoWord(Message.WParam)])
else
Application.MainForm.Caption := "We are closed menu";
end;
end;
initialization
OldPopupList := PopupList;
PopupList := TPopupListEx.Create;
finalization
PopupList := OldPopupList;
← →
nachinayuschij (2008-11-27 16:46) [18]Большое Спасибо! Завтра попробую сделать
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c