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

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

    Этот объект используется для форматирования выносок. Для того, чтобы получить доступ к свойствам этого объекта, нужно воспользоваться методом Callout объекта Shape.

    Перечислим основные свойства этого объекта.

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

    На форме определяются некоторые парметры этого объекта, после чего, по нажатию кнопки "Применить заданные параметы", они используются для форматирования выноски, расположенной на первом слайде презентации.

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


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

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

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    CheckBox1: TCheckBox;
    Button3: TButton;
    Button4: TButton;
    Label3: TLabel;
    ComboBox3: TComboBox;
    Label4: TLabel;
    ColorDialog1: TColorDialog;
    Button7: TButton;
    ComboBox1: TComboBox;
    Label1: TLabel;
    ComboBox2: TComboBox;
    Label2: TLabel;
    ComboBox4: TComboBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    ComboBox5: TComboBox;
    ComboBox6: TComboBox;
    ComboBox7: TComboBox;
    ComboBox9: TComboBox;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button5Click(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
  msoShapeLineCallout2 = 110; // Выноска
var
 V: Variant;
begin
 W.Presentations.Add;
 W.ActivePresentation.Slides.Add(1,1); //Второй параметр - ppLayoutTitle
 Slide1(Self); // Заполнить 1-й слайд
 // Добавить выноску
 W.ActivePresentation.Slides.Item(1).Shapes
   .AddShape(msoShapeLineCallout2, 292, 77.25, $72, 48);
 V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3)
   .TextFrame.TextRange;
 V.Characters(Start:=1,Length:=0).Text:='Выноска';
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.Button7Click(Sender: TObject);
// Выбор цвета
var
  R,G,B: Byte; // Составляющие цветов
  N: Integer;  // Номер слайда
  L: Integer;  // Элемент схемы
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;
    N:= ComboBox1.ItemIndex+1;
    L:= ComboBox3.ItemIndex+1;
    W.ActivePresentation.Slides.Item(N).ColorScheme
       .Colors(L).RGB:=RGB(R,G,B);
   end;
end;

procedure TForm1.Button5Click(Sender: TObject);
// Применение заданных параметров
var
  V: Variant;
begin
  V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).Callout;
  if ComboBox5.ItemIndex=0 then V.Accent := False
  else V.Accent := True;
  if ComboBox6.ItemIndex=5 then V.Angle:=-2
  else V.Angle := ComboBox6.ItemIndex+1;
  if ComboBox7.ItemIndex=0 then V.Border := False
  else V.Border := True;
  if ComboBox9.ItemIndex=4 then V.Type:=-2
  else V.Type := ComboBox9.ItemIndex+1;
end;

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

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




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