Все элементы управления для любой панели собраны в коллекцию Controls.
Данная коллекция не только объединяет элементы и их свойства, но и об-
ладает методами, позволяющими создавать или удалять элементы управле-
ния. Рассмотрим два метода коллекции. Метод Add создает новый элемент,
а метод Delete — удаляет выбранный элемент. Причем метод Delete принад-
лежит элементу коллекции, а не самой коллекции, как метод Add, и его
нельзя применить к стандартным элементам коллекции, а только к вновь
созданным.
Синтаксис вызова метода Add:
Add(Type, Id, Parameter, Before, Temporary);
где Type:Integer — тип объекта, Id:Integer — идентификатор объекта,
ParametenString — имя связанной с данным элементом команды,
Before:Boolean — признак разделителя, Temporary:Boolean — признак созда-
ния временного элемента. Возможные типы создаваемых объектов указаны
в табл. 16.4.
Таблица 16.4. Возможные типы создаваемых объектов
Создадим обычную кнопку на панели Стандартная. Используем метод Add,
первый аргумент которого (Туре) равен msoControlButton, второй (ID) —
единице. Установим значение надписи, записав в Caption текст, выберем
значок (свойство Faceld) и стиль кнопки (отображение и значка, и текста).
Создание кнопки
Var rasButton:variant;
procedure TOKBottomDlg8.Button2Click(Sender: TObject);
begin
msButton:=CommandBars.Item[CheckListBoxl.Itemlndex+l].
Controls.Add(Type:^msoControlButton, ID:=1);
msButton.Caption:='Простая кнопка';
end;
procedure TOKBottomDlg8.FaceldChange(Sender: TObject);
begin
msButton.Faceld:=FaceId.Value;
end;
procedure TOKBottomDlg8.ButtonStyleChange(Sender: TObject);
begin
msButton.Style:=ButtonStyle.Itemlndex;
end;
Результат выполнения представленных процедур показан на рис. 16.14. На
панели Стандартная создана кнопка, задан текст, выбран значок и установ-
лен стиль, в соответствии с которым отображаются текст и значок.
Рис. 16.14. Создаем новую кнопку на панели Стандартная
Изменим стиль кнопки, записав в свойство msButton.Style константу
msoButtonlcon или msoButtonCaption. Соответственно получаем результат,
представленный на рис. 16.15 и 16.16.
Выбор стиля кнопки "только значок"
procedure T0KBottomDlg8.ButtonStyleChange(Sender: TObject ) ;
begin
msButton.Style:= msoButtonlcon;
end;
Рис. 16.15. На кнопке только значок Рис. 16.16. На кнопке только текст
Константа msoButtonlcon представляет собой число и имеет значение 1. За-
писав в свойство Style кнопки константу msoButtonCaption (значение 2),
получим кнопку, на которой расположен только текст.
Выбор стиля кнопки "только текст"
procedure TOKBottomDlg8.ButtonStyleChange{Sender: TObject);
begin
msButton.Style:= msoButtonCaption;
end;
При создании обычного пользовательского элемента (кнопки) мы присваи-
вали параметру 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.
Рис. 16.17. Несколько вариантов кнопок
Создание кнопок с разными значками
procedure TForm1 .Buttonl3Click(Sender: TObject);
var panel, buttom:variant;
a_:integer;
begin
panel:=W.CoiranandBars.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.Faceld:=a_;
end;
end;
Вид кнопок созданной панели показан на рис. 16.17. |