На этом шаге мы рассмотрим созлание надписи и перечислим основные свойства этого объекта.
Надпись (объект 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.
Даже если объект TextBox создан с определенными свойствами, это не значит, что свойства этого объекта нельзя изменить впоследствии. Для этого необходимо получить доступ к созданному объекту, а затем к свойствам самого объекта. Доступ к объекту коллекции Shapes можно получить, используя метод Item(i) данной коллекции. Например, оператор
Shape:=Shapes.Item (i);
помещает в переменную Shape ссылку на элемент коллекции, после чего мы можем изменять свойства непосредственно самого объекта.
Рассмотрим основные свойства объекта TextBox. Поскольку этот объект предназначен в основном для отображения текста, параметры шрифта, а также направление и способ выравнивания текста являются одними из основных его свойств. Внутренние поля тоже определяют положение текста внутри надписи. С использованием свойств объекта Line, принадлежащего объекту TextBox, задаются тип, толщина и цвет линий, ограничивающих объект. Заливка надписи (цветом, узором или рисунком) задается с помощью свойств и методов объекта Fill, который тоже принадлежит объекту TextBox. Размер и положение надписи определяются ее свойствами Width, Height, Top, Left, которые в приложениях Delphi должны иметь тип Extended.
Надпись можно защитить и скрыть текст, но защита действует только тогда, когда включена защита листа.
На следующем шаге мы закончим изучение этого вопроса.