На этом шаге мы рассмотрим некоторые свойства и методы объекта WordArt.
Создав объект WordArt, мы получаем доступ к его свойствам и методам, определяемым его дочерним объектом TextEffect (таблица 1).
Свойство или метод | Тип | Назначение |
---|---|---|
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.
Результат работы приложения изображен на рисунке 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 |
На следующем шаге мы закончим рассмотрение этого вопроса.