На этом шаге мы рассмотрим создание кнопок других типов.
При создании пользовательского элемента (кнопки) мы присваивали аргументу ID значение, равное единице. Если данному аргументу присвоить другое значение, то получим функциональную кнопку со своими значком и командой, выполняемой при обращении к элементу управления. Для примера можем использовать значения от 2 до 9 или от 1850 до 1858.
procedure TForm1.Button2Click(Sender: TObject); //Создание элементов управления с предопределенными свойствами const msoControlButton=1; var i: Integer; begin for i:=1850 to 1858 do begin BTN:=W.CommandBars.Item['standard'].Controls.Add( Type:=msoControlButton, ID:=IntToStr(i)); BTN.Caption:='ID='+IntToStr(i); end; end;
Результат работы поцедуры приведен на рисунке 1.
Рис.1. Результат работы приложения
Вот полный текст приложения:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, CheckLst, Spin; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var W: Variant; BTN: Variant; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //Создание объекта Word и его визуализация begin W:=CreateOleObject('Word.Application'); W.Visible:=True; end; procedure TForm1.Button2Click(Sender: TObject); //Создание элементов управления с предопределенными свойствами const msoControlButton=1; var i: Integer; begin for i:=1850 to 1858 do begin BTN:=W.CommandBars.Item['standard'].Controls.Add( Type:=msoControlButton, ID:=IntToStr(i)); BTN.Caption:='ID='+IntToStr(i); end; end; end.
Значок кнопки определяется величиной числовой константы, записанной в свойство FaceId элемента управления. В качестве примера создадим кнопки со значками для значений этого свойства от 0 до 500.
procedure TForm1.Button3Click(Sender: TObject); //Создание кнопок с различными значками const msoControlButton=1; msoButtonIconAndCaption=3; var P:variant; i:integer; begin P:=W.CommandBars.Add('Новая панель'); P.Visible:=True; for i:= 0 to 500 do begin BTN:=P.Controls.Add(Type:=msoControlButton, ID:=1); BTN.Style:=msoButtonIconAndCaption; BTN.Caption:=IntToStr(i); BTN.FaceId:=i; end; end;
Результат работы приложения изображен на рисунке 2:
Рис.2. Кнопки созданной панели
Со следующего шага мы начнем знакомиться с макросами Visual Basic.