|
ХI. ФУНКЦИИ И ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С КЛАССАМИ И КОМПОНЕНТАМИ
3. Функции и процедуры для работы с меню.
Функция NewItem (
const ACaption: string;
AShortCut: TShortCut;
AChecked: Boolean;
AEnabled: Boolean;
AOnClick: TNotifyEvent;
hCtx: Word;
const AName: string ): TMenuItem
type TShortCut = Low(Word) .. High(Word);
TNotifyEvent = procedure (Sender: TObject) of object;
Модуль: Menus
Описание
Функция, во время выполнения программы, создает пункт меню и инициализирует его. Текст пункта меню передается в параметре ACaption. Параметр AShortCut определяет комбинацию "горячих" клавиш для быстрого вызова пункта меню. Значение для данного параметра можно получить с помощью функций ShortCut и TextToShortCut. Параметр AChecked указывает, появится ли пункт меню с галочкой или же без нее. Параметр AEnabled определяет, будет доступен или заблокирован пункт меню. Параметр AOnClick определяет обработчик события OnClick (событие OnClick происходит при выборе пользователем пункта меню).
Параметр hCtx - идентификатор контекста справки. Параметр AName - имя пункта меню, которое будет использоваться в коде программы. Созданный пункт меню может быть добавлен к массиву элементов меню. Результат функции может быть использован в качестве параметров функции NewMenu для создания меню, функции NewPopupMenu для создания всплывающего меню, или функции NewSubMenu для создания подменю.
По завершению использования пункта меню, созданного динамически с помощью функции NewItem, необходимо высвободить память, выделенную при вызове функции NewItem. Методы Delete и Remove объекта в данном случае не будут приводить к высвобождению памяти.
Пример
var
Items: array[0..2] of TMenuItem;
Item: TMenuItem;
Key: TShortCut;
begin
Key:=ShortCut(Word('X'),[ssShift]);
Items[0]:= NewItem('Пункт1', Key, false, true, N1click, 0, 'MenuItem1');
Items[1]:= NewLine;
Items[2]:= NewItem('Пункт2', 0, false, true, N2click, 0, 'MenuItem2');
Item:= NewSubMenu('&Меню1', 0, 'Submenu1', Items, true,);
NewMenu(Form1, 'Menu1', Item);
end;
[Вернуться к содержанию]
|