Шаг 244.
Автоматизация Microsoft PowerPoint.
Объект Slide

    На этом шаге мы рассмотрим основные свойства объекта Slide.

    Объект Slide представляет собой слайд презентации. Каждый объект Slide является членом коллекции Slides. Объект Slide имеет большой набор свойств, наиболее употребляемые из которых приведены ниже:

    Приведем пример программы создания презентации со слайдом титульного листа. Вот процедура, реализующая данную задачу:

procedure TForm1.Button5Click(Sender: TObject);
var
 V,V1: Variant;
begin
 // Добавляем слайд с двумя прямоугольниками
 W.ActivePresentation.Slides.Add(1,1{ppLayoutTitle});
 // Заполняем первый прямоугольник
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item('Rectangle 2')
   .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('Rectangle 3')
   .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;

    Общий вид картины созданного слайда показан на рисунке 1.


Рис.1. Презентация с одним слайдом

    Добавим еще один слайд с маркированным списком. Текст такой процедуры будет иметь следующий вид:

procedure TForm1.Button6Click(Sender: TObject);
//Добавить еще один слайд
var
   V,V1: Variant;
begin
 W.ActivePresentation.Slides.Add(2,2{ppLayoutText});
 V:=W.ActivePresentation.Slides.Item(2).Shapes.Item('Rectangle 2')
   .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(2).Shapes.Item('Rectangle 3')
   .TextFrame.TextRange;
 V1.Characters(Start:=1,Length:=0).Text:='Описание продукции, ее уникальность;' + 
    Chr(13) + 'Стадия развития проекта;'+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;

    Общий вид полученной презентации представлен на рисунке 2.


Рис.2. Презентация с двумя слайдами

    Вот полный текст приложения:

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;
    Button3: TButton;
    Button4: TButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Button5: TButton;
    Button6: 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);
  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);
var
 V,V1: Variant;
begin
 W.ActivePresentation.Slides.Add(1,1{ppLayoutTitle});
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item('Rectangle 2')
   .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('Rectangle 3')
   .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;
end;

procedure TForm1.Button6Click(Sender: TObject);
//Добавить еще один слайд
var
   V,V1: Variant;
begin
 W.ActivePresentation.Slides.Add(2,2{ppLayoutText});
 V:=W.ActivePresentation.Slides.Item(2).Shapes.Item('Rectangle 2')
   .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(2).Shapes.Item('Rectangle 3')
   .TextFrame.TextRange;
 V1.Characters(Start:=1,Length:=0).Text:='Описание продукции, ее уникальность;' + 
    Chr(13) + 'Стадия развития проекта;'+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.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.
Текст этого приложения можно взять здесь (227,8 Кб)

    На следующем шаге мы рассмотрим основные методы этого объекта.




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