На этом шаге мы рассмотрим работу с текстом.
Для изменения оформления текста в презентации следует обратится к свойству 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.
Результат работы приложения приведен на рисунке 1.
Рис.1. Результат изменения текста
Отметим, однако, что, помимо применения цветовых схем, шаблонов и образцов ко всей презентации, PowerPoint позволяет создавать оформление для отдельных слайдов. Об этом мы поговорим в следующих шагах.
Со следующего шага мы начнем рассматривать работу со слайдами.