Шаг 261.
Автоматизация Microsoft PowerPoint.
Объект ShadowFormat (методы)

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

    Этот объект имеет следующие методы.

    Метод IncrementOffsetX изменяет смещение тени относительно объекта по горизонтали на заданное число пунктов. Положительные числа соответствуют смещению вправо, отрицательные - влево. Синтаксис этого метода следующий:

  IncrementOffsetX(Increment),
где Increment - смещение тени по горизонтали.

    Метод IncrementOffsetY изменяет смещение тени относительно объекта по вертикали на заданное число пунктов. Положительные числа соответствуют смещению вниз, отрицательные - вверх. Синтаксис этого метода следующий:

  IncrementOffsetY(Increment),
где Increment - смещение тени по вертикали.

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

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;
    Label13: TLabel;
    ComboBox10: TComboBox;
    Label2: TLabel;
    Edit1: TEdit;
    UpDown1: TUpDown;
    Label3: TLabel;
    Edit2: TEdit;
    UpDown2: TUpDown;
    Button5: TButton;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ComboBox10Change(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure ComboBox1Change(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
       .AddShape(msoShapeHexagon, 50,5, 200,200);
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3)
   .TextFrame.TextRange;
 V.Characters(Start:=1,Length:=0).Text:='Шестиугольник';
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow;
 V.ForeColor.RGB := RGB(0, 0, 128);
 V.OffsetX := -10;
 V.OffsetY := 5;
 V.Transparency := 0.5;
 V.Visible := True;
 V.Obscured:=True;
 V.Type:=1; //msoShadow1
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).Shadow;
    V.ForeColor.RGB:=RGB(R,G,B);
   end;
end;

procedure TForm1.ComboBox10Change(Sender: TObject);
// Видимость тени
var
 V: Variant;
begin
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow;
 if ComboBox10.ItemIndex=0 then V.Visible:=True
 else V.Visible:=False;
end;

procedure TForm1.Button5Click(Sender: TObject);
// Смещение тени
var
 V: Variant;
begin
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow;
 V.IncrementOffsetX(StrToInt(Edit1.Text)); // по горизонтали
 V.IncrementOffsetY(StrToInt(Edit2.Text)); // по вертикали
end;

procedure TForm1.Edit3Change(Sender: TObject);
// Прозрачность тени
var
 V: Variant;
begin
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow;
 if Edit3.Text<>'' then V.Transparency:=StrToFloat(Edit3.Text);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
// Тип тени
var
 V: Variant;
begin
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Shadow;
 V.Type:=ComboBox1.ItemIndex+1;
end;

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

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


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

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




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