Все элементы управления любой панели собраны в коллекцию Controls.
Данная коллекция не только объединяет элементы и их свойства, но и об-
ладает методами, позволяющими создавать или удалять элементы управле-
ния. Рассмотрим два метода коллекции. Метод Add — создает новый эле-
мент, метод Delete — удаляет выбранный элемент. Причем метод Delete
принадлежит элементу коллекции, а не самой коллекции (как метод Add) и
его нельзя применить к стандартным элементам коллекции, а только к
пользовательским.
Рассмотрим синтаксис вызова метода Add. В справочной системе он выгля-
дит так:
Add(Type, ID, Parameter, Before, Temporary);
где Type:integer — тип объекта, ID:integer — идентификатор объекта(1),
Parametenstring — имя связанной с данным элементом команды,
Before:boolean — признак разделителя, Temporary:boolean — признак созда-
ния временного элемента. Возможные типы создаваемых объектов указаны
в табл. 10.4.
Таблица 10.4. Возможные типы создаваемых объектов
Создадим обычную кнопку на панели Стандартная. Используем метод Add,
первый аргумент которого (Туре) равен msoControlButton, а второй (ID) —
единице. Установим значение надписи, задав в свойстве Caption текст, вы-
берем значок (свойство Faceld) и стиль кнопки (отображение и значка, и
надписи).
Создание новой кнопки
procedure TOKBottomDlg8.Button2Click(Sender: TObject);
begin
msButton:=CommandBars.Item['standard'].Controls.Add(
Type:=msoControlButton, ID:=1);
msButton.Caption:='Простая кнопка';
msButton.Style:= msoButtonlconAndCaption;
msButton.FaceId:=FaceId.value;
end;
Результат выполнения процедуры представлен на рис. 10.13.
Рис. 10.13. Создаем новую кнопку на панели Стандартная
Изменим стиль кнопки (отображение только значка или надписи), записав
в свойство msButton.Style константу msoButtonlcon или msoButtonCaption.
Соответственно получаем результат, представленный на рис. 10.14 и 10.15.
Рис. 10.14. На кнопке только значок Рис. 10.15. На кнопке только надпись
При создании пользовательского элемента (кнопки) мы присваивали аргу-
менту ID значение, равное единице. Если данному аргументу присвоить
другое значение, то получим функциональную кнопку со своими значком и
командой, выполняемой при обращении к элементу управления. Для при-
мера можем использовать значения от 2 до 9 или от 1850 до 1859.
Создание элементов управления с предопределенными свойствами
procedure TOKBottomDlg8.ButtonlClick(Sender: TObject);
var msbootom:variant;
a_:integer;
begin
for a_:=1850 to 1859 do begin
msbootom:=CommandBars.Item[CheckListBoxl.Itemlndex+l].Controls.Add(Type:=
msoControlButton, ID:=inttostr(a_));
msbootom.Caption:='ID='+inttostr(a_);
end;
end;
Значок кнопки определяется величиной числовой константы, записанной в
свойство Faceld элемента управления. В качестве примера создадим кнопки
со значками для значений этого свойства от 0 до 500.
Создание кнопок с различными значками
procedure TForml.Buttonl3Click(Sender: TObject);
var panel, buttom:variant;
a_:integer;
begin
panel: =W. ConrmandBars. Add (' Новая панель ') ;
panel.Visible:=True;
for a_:= 0 to 500 do begin
buttom:=panel.Controls.Add(Type:=msoControlButton, ID:=1),
buttom.Style:=msoButtonIconAndCaption;
buttom.Caption:=inttostr(a_);
buttom.Faeeld:=a_;
end;
end;
Кнопки созданной панели показаны на рис. 10.16.
Рис. 10.16. Варианты значков кнопок
(1) Значения идентификатора объекта (кроме 1) определяют кнопки, связанные с определенными командами Word. Значение 1 определяет кнопку, не связанную с командой Word (т. е. пользовательскую кнопку). |