|
|
Сервер
поддерживается
кафедрой информатики и
вычислительной техники ГрГУ
тел. +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
|
|