На этом шаге мы рассмотрим создание объекта WordArt.
Элементами коллекции Shapes могут быть объекты WordArt, создаваемые с помощью метода AddTextEffect. Синтаксис вызова метода:
WordArt:=Shapes.AddTextEffect(PresetTextEffeet, Text, FontName, FontSize, FontBold, FontItalic, Left, Top);
где PresetTextEffect имеет тип Integer и может принимать значение константы из списка типов объекта: от msoTextEffect1 (значение 0) до msoTextEffect30 (значение 29). Аргумент Text имеет тип String и представляет собой текстовую строку. Наименование шрифта, которым должен быть отображен текст, передается как строка (аргумент FontName, тип String). Размер шрифта задается аргументом FontSize, имеющим тип Integer. Посредством аргументов FontBold и FontItalic задается начертание шрифта как комбинация значений светлый/полужирный и прямой/курсив. Аргументы Left и Тор (тип Extended) определяют положение объекта относительно начала координат листа.
Метод AddTextEffect возвращает ссылку на созданный объект, используя которую можно манипулировать свойствами объекта после его создания.
Следующий пример приложения демонстрирует использование метода AddTextEffect в приложениях Delphi; результат ее выполнения показан на рисунке 1.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, Spin, ExtDlgs, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; ListBox1: TListBox; Label3: TLabel; Button4: TButton; Label2: TLabel; Edit1: TEdit; UpDown1: TUpDown; Label1: TLabel; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var E:variant; WordArt: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); //Создание фигуры 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.AddTextEffect( StrToInt(Edit1.Text),Text:=Memo1.Lines.Text, FontName:='Tahoma', FontSize:=48, FontBold:=True, FontItalic:=False, Left:=left,Top:=top); end; procedure TForm1.Button4Click(Sender: TObject); //Заполнить список фигур var a: Integer; begin ListBox1.Items.Clear; for a:=1 to E.ActiveWorkBook.ActiveSheet.Shapes.Count do ListBox1.Items.Add(E.ActiveWorkBook.ActiveSheet.Shapes.Item(a).Name); end; procedure TForm1.ListBox1Click(Sender: TObject); // При активизации строки объекта ListBoxl, используя имя объекта, // выделяем его из коллекции Shapes и записываем ссылку на этот объект //в переменную WordArt. begin WordArt:=E.ActiveWorkBook.ActiveSheet.Shapes.Item( ListBox1.Items.Strings[ListBox1.ItemIndex]); end; end.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим свойства и методы объекта WordArt.