На этом шаге мы рассмотрим методы этого объекта и приведем пример использования некоторых свойств и методов.
Этот объект имеет следующие методы.
Метод IncrementOffsetX изменяет смещение тени относительно объекта по горизонтали на заданное число пунктов. Положительные числа соответствуют смещению вправо, отрицательные - влево. Синтаксис этого метода следующий:
IncrementOffsetX(Increment),
Метод IncrementOffsetY изменяет смещение тени относительно объекта по вертикали на заданное число пунктов. Положительные числа соответствуют смещению вниз, отрицательные - вверх. Синтаксис этого метода следующий:
IncrementOffsetY(Increment),
Приведем пример приложения, демонстрирующего использование некоторых из указанных свойств и методов. Вот его текст:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls, ExtDlgs, ComCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; Button3: TButton; Button4: TButton; ColorDialog1: TColorDialog; Label1: TLabel; Button2: TButton; Label13: TLabel; ComboBox10: TComboBox; Label2: TLabel; Edit1: TEdit; UpDown1: TUpDown; Label3: TLabel; Edit2: TEdit; UpDown2: TUpDown; Button5: TButton; Label4: TLabel; Edit3: TEdit; Label5: TLabel; ComboBox1: TComboBox; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComboBox10Change(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Edit3Change(Sender: TObject); procedure ComboBox1Change(Sender: TObject); private procedure Slide1(Sender: TObject); { Private declarations } public { Public declarations } end; const //Работа с цветом ppBackground = $00000001; ppForeground = $00000002; ppShadow = $00000003; ppTitle = $00000004; ppFill = $00000005; ppAccent1 = $00000006; ppAccent2 = $00000007; ppAccent3 = $00000008; //Виды текста ppDefaultStyle = $00000001; // стандартный текст ppTitleStyle = $00000002; // текст заголовков ppBodyStyle = $00000003; // основной текст var Form1: TForm1; implementation var W:Variant; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin W:=CreateOleObject('PowerPoint.Application'); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin W.Visible:=CheckBox1.Checked; end; procedure TForm1.Button3Click(Sender: TObject); const msoShapeHexagon = 10; var V: Variant; begin W.Presentations.Add; W.ActivePresentation.Slides.Add(1,1); //Второй параметр - ppLayoutTitle Slide1(Self); // Заполнить 1-й слайд W.ActivePresentation.Slides.Item(1).Shapes .AddShape(msoShapeHexagon, 50,5, 200,200); V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3) .TextFrame.TextRange; V.Characters(Start:=1,Length:=0).Text:='Шестиугольник'; V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow; V.ForeColor.RGB := RGB(0, 0, 128); V.OffsetX := -10; V.OffsetY := 5; V.Transparency := 0.5; V.Visible := True; V.Obscured:=True; V.Type:=1; //msoShadow1 end; procedure TForm1.Slide1(Sender: TObject); // Заполнить 1-й слайд var V,V1: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .TextFrame.TextRange; V.Characters(Start:=1,Length:=0).Text:='Презентация'; V.Font.Name := 'Times New Roman'; V.Font.Size := 44; V.Font.Bold := 0; // msoFalse V.Font.Italic := 0; // msoFalse V.Font.Underline := 0; // msoFalse V.Font.Shadow := 0; // msoFalse V.Font.Emboss := 0; // msoFalse V.Font.BaseLineOffset := 0; V.Font.AutoRotateNumbers := 0; // msoFalse V.Font.Color.SchemeColor := 4; // ppTitle V1:=W.ActivePresentation.Slides.Item(1).Shapes.Item(2) .TextFrame.TextRange; V1.Characters(Start:=1,Length:=0).Text:='Бизнес-план' + Chr(13) + 'директора фирмы "Рога и копыта"'; V1.Font.Name := 'Times New Roman'; V1.Font.Size := 32; V1.Font.Bold := 0; // msoFalse V1.Font.Italic := 0; // msoFalse V1.Font.Underline := 0; // msoFalse V1.Font.Shadow := 0; // msoFalse V1.Font.Emboss := 0; // msoFalse V1.Font.BaseLineOffset := 0; V1.Font.AutoRotateNumbers := 0; // msoFalse V1.Font.Color.SchemeColor := 2; // ppForeground end; procedure TForm1.Button4Click(Sender: TObject); begin W.Quit; Close; end; procedure TForm1.Button2Click(Sender: TObject); // Цвет переднего плана заливки var R,G,B: Byte; // Составляющие цветов V: Variant; begin if ColorDialog1.Execute then begin R:= ColorDialog1.Color and $FF; G:= (ColorDialog1.Color and $FF00) shr 8; B:= (ColorDialog1.Color and $FF0000) shr 16; V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow; V.ForeColor.RGB:=RGB(R,G,B); end; end; procedure TForm1.ComboBox10Change(Sender: TObject); // Видимость тени var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow; if ComboBox10.ItemIndex=0 then V.Visible:=True else V.Visible:=False; end; procedure TForm1.Button5Click(Sender: TObject); // Смещение тени var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow; V.IncrementOffsetX(StrToInt(Edit1.Text)); // по горизонтали V.IncrementOffsetY(StrToInt(Edit2.Text)); // по вертикали end; procedure TForm1.Edit3Change(Sender: TObject); // Прозрачность тени var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow; if Edit3.Text<>'' then V.Transparency:=StrToFloat(Edit3.Text); end; procedure TForm1.ComboBox1Change(Sender: TObject); // Тип тени var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow; V.Type:=ComboBox1.ItemIndex+1; end; end.
Результат работы приложения изображен на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим объект ThreeDFormat.