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

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

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

    Метод AddConnector предназначен для программной реализации соединительной линии. Данный метод возвращает объект Shape, который и представляет собой созданную соединительную линию. Следует иметь в виду, что метод AddConnector только создает соединительную линию, но не соединяет ее с объектами. Для того чтобы задать объекты, которые будет соединять данная линия, используются методы BeginConnect и EndConnect.

    Синтаксис метода AddConnector:

  AddConnector(Type, BeginX, BeginY, EndX, EndY),
где

    Метод BeginConnect связывает начало коннектора с фигурой. Его синтаксис:

  BeginConnect (Shape, Site),
где

    Метод EndConnect связывает конец коннектора с фигурой. Его синтаксис аналогичен методу BeginConnect. Следующие строки добавляют коннектор и определяют его начало в нижней границе первой фигуры, а конец - в верхней границе второй фигуры:

.   .   .   .
const
  msConnectorStraight = 1;
.   .   .   .
 // Добавить коннектор
 V:=W.ActivePresentation.Slides.Item(1).Shapes
   .AddConnector(msConnectorStraight,0,0,0,0);
 V1:=W.ActivePresentation.Slides.Item(1).Shapes;
 V.ConnectorFormat.BeginConnect(ConnectedShape:=V1.Item(1), ConnectionSite:=3);
 V.ConnectorFormat.EndConnect (ConnectedShape:=V1.Item(2), ConnectionSite:=1);

    Методы BeginDisconnect и EndDisconnect используются, соответственно, для разрыва начала и конца коннектора с фигурами. В отличие от ранее рассмотренных методов, они не имеют параметров.

    Пример использования указанных методов:

  V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).ConnectorFormat;
  V.BeginDisconnect;
  V.EndDisconnect;

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

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;
    ColorDialog1: TColorDialog;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Button2: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button2Click(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
  msConnectorStraight = 1;
var
  V,V1: Variant;
begin
 W.Presentations.Add;
 W.ActivePresentation.Slides.Add(1,1); //Второй параметр - ppLayoutTitle
 Slide1(Self); // Заполнить 1-й слайд
 // Добавить коннектор
 V:=W.ActivePresentation.Slides.Item(1).Shapes
   .AddConnector(msConnectorStraight,0,0,0,0);
 V1:=W.ActivePresentation.Slides.Item(1).Shapes;
 V.ConnectorFormat.BeginConnect(ConnectedShape:=V1.Item(1), ConnectionSite:=3);
 V.ConnectorFormat.EndConnect (ConnectedShape:=V1.Item(2), ConnectionSite:=1);
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.ComboBox1Change(Sender: TObject);
var
  V: Variant;
begin
  V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).ConnectorFormat;
  V.Type:=ComboBox1.ItemIndex+1; // Тип соединительной линии

end;

procedure TForm1.Button2Click(Sender: TObject);
// Отсоединить коннектор
var
  V: Variant;
begin
  V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3).ConnectorFormat;
  V.BeginDisconnect;
  V.EndDisconnect;
  ShowMessage('Коннектор отсоединен');
end;

procedure TForm1.Button5Click(Sender: TObject);
// Присоединить коннектор
var
  V,V1: Variant;
begin
  V1:=W.ActivePresentation.Slides.Item(1).Shapes;
  V:=W.ActivePresentation.Slides.Item(1).Shapes.Item(3);
  V.ConnectorFormat.BeginConnect(ConnectedShape:=V1.Item(1), ConnectionSite:=3);
  V.ConnectorFormat.EndConnect (ConnectedShape:=V1.Item(2), ConnectionSite:=1);
  ShowMessage('Коннектор присоединен');
end;

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

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


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

    Кратко прокомментируем основные моменты этого приложения.

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

    Поле со списком позволяет изменить внешний вид коннектора.

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




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