Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.006 c
15-1226831942
b1tard
2008-11-16 13:39
2009.01.11
Симплекс-метод


15-1226480093
godkiller07
2008-11-12 11:54
2009.01.11
у меня вопрос...


2-1227784613
9899100
2008-11-27 14:16
2009.01.11
деструктор


2-1227714428
Alex_C
2008-11-26 18:47
2009.01.11
Прокрутка DBGrid s не активизиоуя их


2-1227859736
начинающий программист
2008-11-28 11:08
2009.01.11
adoquery1.fields





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский