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

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

    Создав объект WordArt, мы получаем доступ к его свойствам и методам, определяемым его дочерним объектом TextEffect (таблица 1).

Таблица 1. Свойства и методы объекта TextEffect
Свойство или метод Тип Назначение
Alignment Integer Выравнивание
FontBold Boolean True/False - полужирное/светлое начертание
FontItalic Boolean True/False - курсивное/прямое начертание
FontName String Наименование шрифта
FontSize Integer Размер шрифта
KernedPairs Boolean Кернинг пар символов1
NormalizedHeight Boolean True - выравнивание символов по высоте
PresetShape Integer Форма текста объекта WordArt
PresetTextEffect Integer Стиль объекта WordArt
RotatedChars Boolean Поворот символов на 90 градусов против часовой стрелки
Text String Содержание текста объекта WordArt
Tracking Extended Определяет межсимвольное расстояние; рекомендуемые значения - в диапазоне от 0,8 до 1,5
ToggleVerticalText Метод Переключает способ расположения символов текста от вертикального к горизонтальному и наоборот

    Изменить цвет символов текста можно с помощью того же метода, что и при установке заливки надписи (объекта TextBox).

    Изменим форму текста с помощью свойства PresetShape объекта TextEffect. Реализовать это позволяет следующее приложение.

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;
    Label4: TLabel;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure ComboBox1Change(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;


procedure TForm1.ComboBox1Change(Sender: TObject);
//Изменение формы текста для объекта WordArt
begin
    WordArt.TextEffect.PresetShape:=ComboBox1.ItemIndex+1;
end;

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

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


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

    В заключение приведем список констант, определяющих форму текста.

Таблица 1. Список констант, определяющих форму текста
Мнемоническое обозначение Константа
msoTextEffectShapePlainText 1
msoTextEffectShapeStop 2
msoTextEffectShapeTriangleUp 3
msoTextEffectShapeTriangleDown 4
msoTextEffectShapeChevronUp 5
msoTextEffectShapeChevronDown 6
msoTextEffectShapeRingInside 7
msoTextEffectShapeRingOutside 8
msoTextEffectShapeArchUpCurve 9
msoTextEffectShapeArchDownCurve 10
msoTextEffectShapeCircleCurve 11
msoTextEffectShapeButtonCurve 12
msoTextEffectShapeArchUpPour 13
msoTextEffectShapeArchDownPour 14
msoTextEffectShapeCirclePour 15
msoTextEffectShapeButtonPour 16
msoTextEffectShapeCurveUp 17
msoTextEffectShapeCurveDown 18
msoTextEffectShapeCanUp 19
msoTextEffectShapeCanDown 20
msoTextEffectShapeWave1 21
msoTextEffectShapeWave2 22
msoTextEffectShapeDoubleWave1 23
msoTextEffectShapeDoubleWave2 24
msoTextEffectShapeInflate 25
msoTextEffectShapeDeflate 26
msoTextEffectShapeInflateBottom 27
msoTextEffectShapeDeflateBottom 28
msoTextEffectShapeInflateTop 29
msoTextEffectShapeDeflateTop 30
msoTextEffectShapeDeflateInflate 31
msoTextEffectShapeDeflateInflateDeflate 32
msoTextEffectShapeFadeRight 33
msoTextEffectShapeFadeLeft 34
msoTextEffectShapeFadeUp 35
msoTextEffectShapeFadeDown 36
msoTextEffectShapeSlantUp 37
msoTextEffectShapeSlantDown 38
msoTextEffectShapeCascadeUp 39
msoTextEffectShapeCascadeDown 40

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




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