На этом шаге мы рассмотрим методы этого объекта.
Метод Сору копирует слайд в буфер обмена, не удаляя его из презентации. Например, для реализации операции копирования в буфер обмена второго слайда необходима команда:
W.ActivePresentation.Slides.Item(2).Copy;
Метод Cut делает то же самое, что и метод Сору, удаляя слайд.
Метод Delete позволяет удалить элемент из коллекции. В данном случае удаляется слайд. Например, для удаления третьего слайда из активной презентации необходимо выполнить команду:
W.ActivePresentation.Slides.Item(3).Delete;
Метод Duplicate позволяет создать копию слайда и добавить ее к коллекции Slides сразу вслед за дублируемым слайдом. Данный метод возвращает объект Slide, который представляет собой слайд-копию. Например:
var
V: Variant;
. . . .
V:=W.ActivePresentation.Slides.Item(1).Duplicate;
V.Shapes.Item('Rectangle 2').TextFrame.TextRange.
Characters(Start:=1,Length:=0).Text:='Продублированный слайд';
Метод Export позволяет сохранить конкретный слайд в одном из графических форматов. Синтаксис данного метода следующий:
Export (FileName, FilterName, ScaleWidth, ScaleHeight),
Метод Select позволяет выбрать объект (в данном случае слайд). В представленном ниже примере реализован выбор второго слайда презентации:
W.ActivePresentation.Slides.Item(2).Select;
Приведем пример приложения, иллюстрирующего использование некоторых из перечисленных методов.
Текст приложения:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; Button2: TButton; Button3: TButton; Button4: TButton; ComboBox1: TComboBox; ComboBox2: TComboBox; Label1: TLabel; Label2: TLabel; Button5: TButton; Button6: TButton; Edit1: TEdit; Button7: TButton; Label4: TLabel; Edit2: TEdit; Button8: TButton; Button9: TButton; Button10: TButton; Panel1: TPanel; Label3: TLabel; Button11: TButton; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); private { 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.Button2Click(Sender: TObject); //Закрытие документа begin W.ActivePresentation.Close; end; procedure TForm1.Button3Click(Sender: TObject); begin W.Presentations.Add; end; procedure TForm1.Button5Click(Sender: TObject); //Добавить слайд begin W.ActivePresentation.Slides.Add(1,1{ppLayoutTitle}); end; procedure TForm1.Button4Click(Sender: TObject); begin W.Quit; end; procedure TForm1.Button6Click(Sender: TObject); //Копировать слайд var n:Integer; begin n:=StrToInt(Edit1.Text); W.ActivePresentation.Slides.Item(n).Copy; end; procedure TForm1.Button8Click(Sender: TObject); //Вырезать слайд var n:Integer; begin n:=StrToInt(Edit1.Text); W.ActivePresentation.Slides.Item(n).Cut; end; procedure TForm1.Button9Click(Sender: TObject); //Удалить слайд var n:Integer; begin n:=StrToInt(Edit1.Text); W.ActivePresentation.Slides.Item(n).Delete; end; procedure TForm1.Button10Click(Sender: TObject); //Дублировать слайд var n:Integer; V:Variant; begin n:=StrToInt(Edit1.Text); V:=W.ActivePresentation.Slides.Item(n).Duplicate; V.Shapes.Item('Rectangle 2').TextFrame.TextRange. Characters(Start:=1,Length:=0).Text:='Продублированный слайд'; end; procedure TForm1.Button11Click(Sender: TObject); //Экспортировать слайд var n:Integer; begin n:=StrToInt(Edit1.Text); W.ActivePresentation.Slides.Item(n).Export('slide.bmp','bmp'); end; procedure TForm1.Button7Click(Sender: TObject); //Вставить слайд var n:Integer; begin n:=StrToInt(Edit2.Text); W.ActivePresentation.Slides.Paste(n); end; procedure TForm1.ComboBox1Change(Sender: TObject); begin case ComboBox1.ItemIndex of 0 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppBackGround).RGB:=clRed; 1 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppBackGround).RGB:=clGreen; 2 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppBackGround).RGB:=clBlue; 3 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppBackGround).RGB:=clBlack; 4 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppBackGround).RGB:=clWhite; end; end; procedure TForm1.ComboBox2Change(Sender: TObject); begin case ComboBox2.ItemIndex of 0 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppForeground).RGB:=clRed; 1 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppForeground).RGB:=clGreen; 2 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppForeground).RGB:=clBlue; 3 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppForeground).RGB:=clBlack; 4 : W.ActivePresentation.SlideMaster.ColorScheme .Colors(ppForeground).RGB:=clWhite; end; end; end.
Надеемся, что приведенные процедуры не вызвали затруднений.
Результат работы приложения изображен на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы приведем общие сведения о цветовых схемах.