Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Описание компонентов VCL >> Типы меню >> TMenu
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


TMenu


TObject => TPersistent => TComponent => TMenu
Модуль MENUS
В Палитру компонентов не входит

Этот компонент отсутствует в Палитре компонентов, но содержит методы и свойства, приведенные в таблице, общие для двух потомков ? TMainMenu и TPopupMenu, которые туда входят.

(Rо) property Handle: HMENU; Содержит дескриптор меню.
property WindowHandle: HWND; Содержит дескриптор окна Windows (формы или оконного элемента управления), с которым связано меню.
(Ro) property Items: TMenuItem; Содержит список элементов меню. На самом верху иерархии меню есть единственный элемент (со статусом MF_POPUP), чей список и используется.
function DispatchCommand (ACominand: Word) : Boolean; Отыскивает пункт меню с заданной командой, в случае успеха вызывает его метод Click и возвращает True.
function DispatchPopup (AHandle: HMENU): Boolean; Работает как DispatchCommand, но отыскивает пункт меню с дескриптором AHandle.
function FindItem (Value: Word; Kind: TFindItemKind): TMenuItem;
TFindItemKind = (fkCommand, fkHandle, fkShortCut);
Возвращает указатель на объект, соответствующий заданному пункту меню. Параметр Value должен содержать величину, которая интерпретируется в соответствии с одним из трех способов поиска (по команде, дескриптору или комбинации горячих клавиш).
function GetHelpContext (Value: Word; ByCommand: Boolean): THelpContext; Возвращает значение контекста помощи элемента меню. Если параметр ByCommand установлен в True, Value содержит связанную с пунктом команду, в противном случае ? дескриптор. Если контекст у пункта отсутствует (равен 0), то отыскивается ближайший родительский ненулевой контекст. Если и он не найден, возвращается 0.
function IsShortCut (var Message: TWMKey): Boolean; Определяет, какая комбинация горячих клавиш ShortCut нажата, и отыскивает соответствующий пункт меню. Если пункт с таким значением ShortCut найден, и его метод Click отработал успешно, метод возвращает True.

В следующем примере метод обрабатывает сообщение Windows WM_MENUSELECT, которое возникает при перемещении фокуса между пунктами меню. В зависимости от типа пункта показывается его дескриптор или команда:

procedure TForm1.wmMenuSelect (var Msg :TWMMenuSelect);
var AnItem : TMenuItem;
begin
═════with Msg do
══════════begin
═══════════════if (MenuFlag and MF_POPUP <>0 ) then
════════════════════begin
═════════════════════════AnItem := Form1.Menu.FindItem(IdItem, fkHandle);
═════════════════════════if AnItem<>nil then Labell.Caption :=
══════════════════════════════'Handle: '+IntToHex(AnItein.Handle, 4) ;
════════════════════end
═══════════════else
════════════════════begin
═════════════════════════AnItem :=Form1.Menu.Findltem(ldltem, fkCommand) ;
═════════════════════════if AnItem<>nil then Label1.Caption :=
══════════════════════════════'Command:'+IntToHex(AnItem.Command,4);
════════════════════end;
══════════end;
═════inherited;
end;



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017