Шаг 241.
Автоматизация Microsoft PowerPoint.
Оформление презентаций (окончание)

    На этом шаге мы рассмотрим работу с текстом.

    Для изменения оформления текста в презентации следует обратится к свойству TextStyles объекта SlideMaster, содержащему три объекта типа TextStyle (для текста заголовков, основного и стандартного текстов):

  const
   ppDefaultStyle = $00000001;//стандартный текст
   ppTitleStyle   = $00000002;// текст заголовков
   ppBodyStyle    = $00000003;// основной текст

    Объект TextStyle обладает свойствами:

    TextFrame является объектом и содержит следующие основные свойства:

    Свойство Levels объекта TextStyle содержит пять объектов TextStyleLevel, содержащих сведения об оформлении текста разных уровней.

    Следующий фрагмент кода устанавливает отступ для основного текста от левого края содержащего его объекта равным 10 пунктам, размер шрифта первого уровня основного текста равным 42 пунктам, а имя этого шрифта равным значению Courier:

  W.ActivePresentation.SlideMaster.TextStyles.Item(ppBodyStyle).
      TextFrame.MarginLeft:=10;
  W.ActivePresentation.SlideMaster.TextStyles.Item(ppBodyStyle).
      Levels.Item(1).Font.Size:=42;
  W.ActivePresentation.SlideMaster.TextStyles.Item(ppBodyStyle).
      Levels.Item(1).Font.Name:='Courier';

    Приведем полный текст приложения:

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 ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(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,2{ppLayoutText});
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
 W.Quit;
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;

procedure TForm1.Button6Click(Sender: TObject);
begin
  W.ActivePresentation.SlideMaster.TextStyles.Item(ppBodyStyle)
         .TextFrame.MarginLeft:=10;
  W.ActivePresentation.SlideMaster.TextStyles.Item(ppBodyStyle)
         .Levels.Item(1).Font.Size:=42;
  W.ActivePresentation.SlideMaster.TextStyles.Item(ppBodyStyle)
          .Levels.Item(1).Font.Name:='Courier';
end;

end.
Текст этого приложения можно взять здесь (225,2 Кб).

    Результат работы приложения приведен на рисунке 1.


Рис.1. Результат изменения текста

    Отметим, однако, что, помимо применения цветовых схем, шаблонов и образцов ко всей презентации, PowerPoint позволяет создавать оформление для отдельных слайдов. Об этом мы поговорим в следующих шагах.

    Со следующего шага мы начнем рассматривать работу со слайдами.




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