На этом шаге мы рассмотрим методы, используемые для выполнения указанных действий.
Изучение темы разработки контроллеров PowerPoint мы начнем с создания и открытия презентаций.
Создать новую презентацию PowerPoint можно, используя метод Add коллекции Presentations объекта Application:
Арр.Presentations.Add;
Приведем пример использования этого метода:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; Button2: TButton; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; 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.Presentations.Add; end; end.
Результат работы приложения приведе на рисунке 1.
Рис.1. Результат работы приложения
Для открытия уже существующей презентации документа следует воспользоваться методом Open коллекции Presentations:
Арр.Presentations.Open('C:\MyPresentation.ppt');
Вот полный текст приложения:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; Button2: TButton; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; 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:=CreateOleObject('PowerPoint.Application'); if OpenDialog1.Execute then begin W.Presentations.Open(OpenDialog1.FileName); W.Visible:=true; end; end; end.
Результат работы приложения приведе на рисунке 1.
Рис.2. Результат работы приложения
Отметим, что свойство ActivePresentation объекта PowerPoint.Application указывает на текущую активную презентацию среди одной или нескольких открытых. Помимо этого, к рабочей книге можно обращаться по ее порядковому номеру; например, ко второй открытой рабочей книге можно обратиться так:
Арр.Presentations.Item(2);
Обратите внимание, что в Delphi при позднем связывании синтаксис обращения к членам коллекций объектов PowerPoint аналогичен синтаксису обращения к объектам Word (и, соответственно, отличен от синтаксиса обращения к объектам Excel).
Отметим также, что в случае PowerPoint, в отличие от Word и Excel, объект Application не имеет метода Activate, с помощью которого можно было бы сделать активной конкретную презентацию среди нескольких открытых. Для решения этой задачи следует обращаться к коллекции Windows объекта Presentation или к объектам DocumentWindow и SlideShowWindow, например:
Арр.Presentations.Item(1).Windows.Item(1).Activate;
Следующее, чему необходимо научиться - это сохранять презентации в файлах.
На следующем шаге мы рассмотрим сохранение и закрытие презентаций.