На этом шаге мы приведем пример использования объекта LineFormat.
Для того, чтобы использовать свойства этого объекта, получим ссылку на объект LineFormat, воспользовавшись методом Line объекта Shape. После этого установим начальные значения некоторых свойств:
. . . . // Добавление линии W.ActivePresentation.Slides.Item(1).Shapes.AddLine(10, 10, 250, 250); // Получение ссылки на объект LineFormat V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; // Задание начальных значений некоторых свойств V.BackColor.RGB:=RGB(0,0,255); V.ForeColor.RGB:=RGB(255,0,0); V.Weight:=6; V.BeginArrowheadStyle:=5; // msoArrowheadDiamond V.BeginArrowheadLength:=3; // msoArrowheadLong V.BeginArrowheadWidth:=1; // msoArrowheadNarrow V.DashStyle:=8; // msoLineLongDashDot V.EndArrowheadLength:=1; // msoArrowheadShort V.EndArrowheadStyle:=3; // msoArrowheadOpen V.EndArrowheadWidth:=3; // msoArrowheadWide V.Style:=5; // msoLineThickBetweenThin
Затем, производя выбор нужного значения в компонентах TComboBox, меняем значения соответствующих параметров. Произведенные изменения будут сразу же отражены на слайде (обработчики события OnChange компонентов TComboBox).
Результат работы приложения изображен на рисунке 1.
Рис.1. Результат работы приложения
Полный текст приложения:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls, ExtDlgs, ComCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; Button3: TButton; Button4: TButton; ColorDialog1: TColorDialog; Label1: TLabel; Button2: TButton; Label2: TLabel; ComboBox1: TComboBox; Label3: TLabel; ComboBox2: TComboBox; Label4: TLabel; Label5: TLabel; ComboBox3: TComboBox; Label6: TLabel; ComboBox4: TComboBox; Label7: TLabel; ComboBox5: TComboBox; Button11: TButton; ComboBox6: TComboBox; ComboBox7: TComboBox; Label8: TLabel; ComboBox8: TComboBox; Label9: TLabel; Label10: TLabel; ComboBox9: TComboBox; Label12: TLabel; Edit2: TEdit; UpDown1: TUpDown; Label13: TLabel; ComboBox10: TComboBox; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox6Change(Sender: TObject); procedure ComboBox7Change(Sender: TObject); procedure ComboBox4Change(Sender: TObject); procedure ComboBox5Change(Sender: TObject); procedure ComboBox8Change(Sender: TObject); procedure ComboBox3Change(Sender: TObject); procedure ComboBox9Change(Sender: TObject); procedure Edit2Change(Sender: TObject); procedure ComboBox10Change(Sender: TObject); private procedure Slide1(Sender: TObject); { 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.Button3Click(Sender: TObject); const msoShapeHexagon = 10; var V: Variant; begin W.Presentations.Add; W.ActivePresentation.Slides.Add(1,1); //Второй параметр - ppLayoutTitle Slide1(Self); // Заполнить 1-й слайд W.ActivePresentation.Slides.Item(1).Shapes.AddLine(10, 10, 250, 250); // Задание цветов переднего плана и фона заливки V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.BackColor.RGB:=RGB(0,0,255); V.ForeColor.RGB:=RGB(255,0,0); V.Weight:=6; V.BeginArrowheadStyle:=5; // msoArrowheadDiamond V.BeginArrowheadLength:=3; // msoArrowheadLong V.BeginArrowheadWidth:=1; // msoArrowheadNarrow V.DashStyle:=8; // msoLineLongDashDot V.EndArrowheadLength:=1; // msoArrowheadShort V.EndArrowheadStyle:=3; // msoArrowheadOpen V.EndArrowheadWidth:=3; // msoArrowheadWide // V.Pattern:=45; // msoPatternDottedGrid V.Style:=5; // msoLineThickBetweenThin end; procedure TForm1.Slide1(Sender: TObject); // Заполнить 1-й слайд var V,V1: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .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(2) .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; Close; end; procedure TForm1.Button2Click(Sender: TObject); // Цвет переднего плана заливки var R,G,B: Byte; // Составляющие цветов V: Variant; begin if ColorDialog1.Execute then begin R:= ColorDialog1.Color and $FF; G:= (ColorDialog1.Color and $FF00) shr 8; B:= (ColorDialog1.Color and $FF0000) shr 16; V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.ForeColor.RGB:=RGB(R,G,B); end; end; procedure TForm1.Button11Click(Sender: TObject); // Цвет фона заливки var R,G,B: Byte; // Составляющие цветов V: Variant; begin if ColorDialog1.Execute then begin R:= ColorDialog1.Color and $FF; G:= (ColorDialog1.Color and $FF00) shr 8; B:= (ColorDialog1.Color and $FF0000) shr 16; V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.BackColor.RGB:=RGB(R,G,B); end; end; procedure TForm1.ComboBox1Change(Sender: TObject); // Длина стрелки в начале линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.BeginArrowheadStyle:=ComboBox1.ItemIndex+1; end; procedure TForm1.ComboBox2Change(Sender: TObject); // Стиль стрелки в начале линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.BeginArrowheadLength:=ComboBox2.ItemIndex+1; end; procedure TForm1.ComboBox6Change(Sender: TObject); // Толщина стрелки в начале линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.BeginArrowheadWidth:=ComboBox6.ItemIndex+1; end; procedure TForm1.ComboBox7Change(Sender: TObject); // Шаблон линии (стиль пунктира) var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.DashStyle:=ComboBox7.ItemIndex+1; end; procedure TForm1.ComboBox4Change(Sender: TObject); // Длина стрелки в конце линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.EndArrowheadStyle:=ComboBox4.ItemIndex+1; end; procedure TForm1.ComboBox5Change(Sender: TObject); // Стиль стрелки в конце линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.EndArrowheadLength:=ComboBox5.ItemIndex+1; end; procedure TForm1.ComboBox8Change(Sender: TObject); // Толщина стрелки в конце линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.EndArrowheadWidth:=ComboBox8.ItemIndex+1; end; procedure TForm1.ComboBox3Change(Sender: TObject); // Узор линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.Pattern:=ComboBox3.ItemIndex+1; end; procedure TForm1.ComboBox9Change(Sender: TObject); // Стиль линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.Style:=ComboBox9.ItemIndex+1; end; procedure TForm1.Edit2Change(Sender: TObject); // Толщина линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; V.Weight:=StrToInt(Edit2.Text); end; procedure TForm1.ComboBox10Change(Sender: TObject); // Видимость линии var V: Variant; begin V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Line; if ComboBox10.ItemIndex=0 then V.Visible:=True else V.Visible:=False; end; end.
На следующем шаге мы рассмотрим объект ShadowFormat.