Шаг 166.
Автоматизация Microsoft Excel. Работа с объектами в книге Excel.
Объекты WordArt

    На этом шаге мы рассмотрим создание объекта 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.
Текст этого приложения можно взять здесь (7,8 Кб).


Рис.1. Результат работы приложения

    На следующем шаге мы рассмотрим свойства и методы объекта WordArt.




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