Шаг 151.
Автоматизация Microsoft Excel. Работа с объектами в книге Excel.
Надпись

    На этом шаге мы рассмотрим созлание надписи и перечислим основные свойства этого объекта.

    Надпись (объект TextBox) создается с помощью метода AddTextbox коллекции Shapes. При вызове этого метода необходимо указать параметры создаваемого объекта - направление текста объекта, его координаты и размеры. Если метод AddTextbox вызывается из приложений Delphi, то переменные, задающие координаты и размеры, должны иметь тип Extended. Следующий пример процедуры демонстрирует использование данного метода в приложениях.

procedure TForm1.Button3Click(Sender: TObject);
//Создание надписи
const msoTextOrientationHorizontal=1;
var
  left,top:Extended;
begin
  left:=10;
  top:=11;
  if E.ActiveWorkBook.ActiveSheet.Shapes.Count>0 then
  begin
   left:=E.ActiveWorkBook.ActiveSheet.Shapes.
              item(E.ActiveWorkBook.ActiveSheet.Shapes.count).Left+20;
   top :=E.ActiveWorkBook.ActiveSheet.Shapes.
              item(E.ActiveWorkBook.ActiveSheet.Shapes.count).Top+20;
  end;
  E.ActiveWorkBook.ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
     left, top, 200, 100);
end;

    Результат выполнения представленной процедуры может выглядеть примерно так, как показано на рисунке .


Рис.1. Создание надписи

    В данном примере создан объект с определенными координатами и размерами, заданными в управляющей программе. Задано горизонтальное направление текста, но при создании объекта можно выбрать любой из возможных типов ориентации текста.

    Приведем полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, Spin;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;

{$R *.dfm}


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

procedure TForm1.Button2Click(Sender: TObject);
//Создание рабочей книги
begin
  E.WorkBooks.Add;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Создание надписи
const msoTextOrientationHorizontal=1;
var
  left,top:Extended;
begin
  left:=10;
  top:=11;
  if E.ActiveWorkBook.ActiveSheet.Shapes.Count>0 then
  begin
   left:=E.ActiveWorkBook.ActiveSheet.Shapes.
        item(E.ActiveWorkBook.ActiveSheet.Shapes.count).Left+20;
   top :=E.ActiveWorkBook.ActiveSheet.Shapes.
        item(E.ActiveWorkBook.ActiveSheet.Shapes.count).Top+20;
  end;
  E.ActiveWorkBook.ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
     left, top, 200, 100);
end;

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

    Даже если объект TextBox создан с определенными свойствами, это не значит, что свойства этого объекта нельзя изменить впоследствии. Для этого необходимо получить доступ к созданному объекту, а затем к свойствам самого объекта. Доступ к объекту коллекции Shapes можно получить, используя метод Item(i) данной коллекции. Например, оператор

    Shape:=Shapes.Item (i);

помещает в переменную Shape ссылку на элемент коллекции, после чего мы можем изменять свойства непосредственно самого объекта.

    Рассмотрим основные свойства объекта TextBox. Поскольку этот объект предназначен в основном для отображения текста, параметры шрифта, а также направление и способ выравнивания текста являются одними из основных его свойств. Внутренние поля тоже определяют положение текста внутри надписи. С использованием свойств объекта Line, принадлежащего объекту TextBox, задаются тип, толщина и цвет линий, ограничивающих объект. Заливка надписи (цветом, узором или рисунком) задается с помощью свойств и методов объекта Fill, который тоже принадлежит объекту TextBox. Размер и положение надписи определяются ее свойствами Width, Height, Top, Left, которые в приложениях Delphi должны иметь тип Extended.

    Надпись можно защитить и скрыть текст, но защита действует только тогда, когда включена защита листа.

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




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