На этом шаге мы рассмотрим способ изменения расположения символов и интервал между символами.
Изменим способ расположения символов текста и интервал между символами (выполним трекинг).
procedure TForm1.Button5Click(Sender: TObject); //Изменение способа расположения символов begin WordArt.TextEffect.ToggleVerticalText; end; //Изменение и межсимвольного интервала procedure TForm1.SpinButton1DownClick(Sender: TObject); begin if StrToFloat(Edit2.Text)>0.8 then begin Edit2.Text:=FloatToStr(StrToFloat(Edit2.Text)-0.1); WordArt.TextEffect.Tracking:=StrToFloat(Edit2.Text); end; end; procedure TForm1.SpinButton1UpClick(Sender: TObject); begin if StrToFloat(Edit2.Text)<1.5 then begin Edit2.Text:=FloatToStr(StrToFloat(Edit2.Text)+0.1); WordArt.TextEffect.Tracking:=StrToFloat(Edit2.Text); end; end;
Результат выполнения этих процедур представлен на рисунке 1.
Рис.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; Label4: TLabel; ComboBox1: TComboBox; Button5: TButton; Label5: TLabel; SpinButton1: TSpinButton; Edit2: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button5Click(Sender: TObject); procedure SpinButton1DownClick(Sender: TObject); procedure SpinButton1UpClick(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; procedure TForm1.Button5Click(Sender: TObject); //Изменение способа расположения символов begin WordArt.TextEffect.ToggleVerticalText; end; //Изменение и межсимвольного интервала procedure TForm1.SpinButton1DownClick(Sender: TObject); begin if StrToFloat(Edit2.Text)>0.8 then begin Edit2.Text:=FloatToStr(StrToFloat(Edit2.Text)-0.1); WordArt.TextEffect.Tracking:=StrToFloat(Edit2.Text); end; end; procedure TForm1.SpinButton1UpClick(Sender: TObject); begin if StrToFloat(Edit2.Text)<1.5 then begin Edit2.Text:=FloatToStr(StrToFloat(Edit2.Text)+0.1); WordArt.TextEffect.Tracking:=StrToFloat(Edit2.Text); end; end; end.
Коллекция Shapes позволяет создавать и работать с внешними объектами (OLE-объектами), свойства и методы работы с которыми применительно к документам Word были рассмотрены в предыдущих шагах. За исключением незначительных особенностей для рабочих книг Excel все они аналогичны.
Со следующего шага мы начнем рассматривать создание и использование диаграмм.