Шаг 235.
Автоматизация Microsoft PowerPoint.
Запуск Microsoft PowerPoint, создание и открытие презентаций

    На этом шаге мы рассмотрим методы, используемые для выполнения указанных действий.

    Изучение темы разработки контроллеров 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.
Текст этого приложения можно взять здесь (213 Кб).

    Результат работы приложения приведе на рисунке 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.
Текст этого приложения можно взять здесь (216 Кб).

    Результат работы приложения приведе на рисунке 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;

    Следующее, чему необходимо научиться - это сохранять презентации в файлах.

    На следующем шаге мы рассмотрим сохранение и закрытие презентаций.




Предыдущий шаг Содержание Следующий шаг