Главная страница
    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.005 c
15-1225632961
Кто б сомневался
2008-11-02 16:36
2009.01.11
Электронные книги - будущая замена бумажных книг?


3-1212702633
^-k2-^
2008-06-06 01:50
2009.01.11
Oracle+xml.кодировка


4-1202912615
Андрей Пл
2008-02-13 17:23
2009.01.11
Как определить что данные черех СОМ порт отправлены???


1-1205408707
Xmen
2008-03-13 14:45
2009.01.11
правильное закрытие документа Excel


15-1226564342
Нов_и_чок
2008-11-13 11:19
2009.01.11
Справочник Win32 для XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский