Шаг 216.
Автоматизация Microsoft Excel. Программирование свойств MS Excel.
Создание нового элемента управления (окончание)

    На этом шаге мы рассмотрим создание кнопок других типов.

    При создании пользовательского элемента (кнопки) мы присваивали аргументу 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:=E.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
  E: Variant;
  BTN: Variant;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel и его визуализация
begin
  E:=CreateOleObject('Excel.Application');
  E.Visible:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
//Создание элементов управления с предопределенными свойствами
const
  msoControlButton=1;
var
  i: Integer;
begin
  for i:=1850 to 1858 do
  begin
    BTN:=E.CommandBars.Item['standard'].Controls.Add(
      Type:=msoControlButton, ID:=IntToStr(i));
    BTN.Caption:='ID='+IntToStr(i);
  end;
end;

end.
Текст этого приложения можно взять здесь (5,7 Кб).

    Значок кнопки определяется величиной числовой константы, записанной в свойство FaceId элемента управления. В качестве примера создадим кнопки со значками для значений этого свойства от 0 до 500.

procedure TForm1.Button3Click(Sender: TObject);
//Создание кнопок с различными значками
const
  msoControlButton=1;
  msoButtonIconAndCaption=3;
var
  P:variant;
  i:integer;
begin
  P:=E.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;
Полный текст этого приложения можно взять здесь (6,2 Кб).

    Результат работы приложения изображен на рисунке 2:


Рис.2. Кнопки созданной панели

    Со следующего шага мы начнем знакомиться с использованием Visual Basic Editor.




Предыдущий шаг Содержание Следующий шаг