Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
15-1226665932
Dmitry S
2008-11-14 15:32
2009.01.11
Книга по Flash ActiveScript 3.0


15-1226588778
antonn
2008-11-13 18:06
2009.01.11
нужен jpeg.pas


8-1189005676
Tehnik(^____^)
2007-09-05 19:21
2009.01.11
Вставляем скрин в TImage


2-1227696353
MAX
2008-11-26 13:45
2009.01.11
TreeView и ImageList


2-1227898264
9899100
2008-11-28 21:51
2009.01.11
TlistView