Объект AnimationSettings

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

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

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

  • AdvanceMode - возвращает или задает значение, указывающее, запустится ли анимация только при нажатии клавиши или автоматически через заданный
    промежуток времени. Если анимация не началась, убедитесь, что свойство TextLevelEffect установлено в значение, отличное от
    ppAnimateLevelNone и свойство Animate имеет значение True. Возможные значения свойства: ppAdvanceModeMixed (-2), ppAdvanceOnClick (1), ppAdvanceOnTime (2).
  • AdvanceTime - возвращает или устанавливает количество времени в секундах, после которого начнется анимация.
    Анимация не начнется автоматически, если значение свойства AdvanceMode свойство анимации не установлена в ppAdvanceOnTime.
  • AfterEffect - возвращает или задает константу, которая указывает, является ли указанная автофигура недоступна, скрыта, или доступ к ней
    не меняется после завершения ее анимации.
    Для анимации автофигуры нужно свойству TextLevelEffect объекта AnimationSettings установить значение, отличное от
    ppAnimateLevelNone, или свойство EntryEffect должно быть установлено в значение, отличное от ppEffectNone. Кроме того,
    свойство Animate имеет значение True. Возможные значения:
    ppAfterEffectDim (2), ppAnimAfterEffectHide (1), ppAfterEffectHideOnNextClick (3), ppAfterEffectMixed (-2), ppAfterEffectNone (0).
  • Animate - определяет, включена (True) или нет (False) анимация.
  • AnimateBackground - определяет, будет анимация задействовать текст автофигуры или нет.
    Используйте свойства TextLevelEffect и TextUnitEffect для управления анимацией текста, находящегося в автофигуре.
    Если автофигура представляет собой график, объект и значение свойства True, то фон (осей и сетки) автофигуры анимированные. Свойство применимо
    только к сложным автофигурам с текстом.
    Если это свойство установлено в True и свойство TextLevelEffect имеет значение ppAnimateByAllLevels, то
    автофигура и текст анимируются одновременно. Если это свойство установлено в True и TextLevelEffect свойство имеет значение,
    отличное от ppAnimateByAllLevels, то автофигура анимируется без текста.
    Для анимации автофигуры свойство TextLevelEffect должно иметь значение, отличное от ppAnimateLevelNone, и либо
    свойство Animate должно быть установлено в True, или свойство EntryEffect должно иметь значение, отличное от
    ppEffectNone.
  • AnimateTextInReverse - определяет построен ли объект (автофигура) в обратном порядке. Применяется для объектов, которые не создаются за
    один шаг. Свойство логического типа.
  • AnimationOrder - число, определяющее номер автофигуры в коллекции анимируемых автофигур.
  • ChartUnitEffect - определяет, что подлежит анимированию (серии, котегории, элементы). Возможные значения:
    ppAnimateByCategory (2), ppAnimateByCategoryElements (4), ppAnimateBySeries (1), ppAnimateBySeriesElements (3), ppAnimateChartAllAtOnce (5),
    ppAnimateChartMixed (-2).
  • DimColor - возвращает или задает объект ColorFormat, определяющий цвета построенной автофигуры.
  • EntryEffect - используется для задания анимационного эффекта для автофигуры. Возможные значения этого параметра приведены на предыдущем шаге.
  • PlaySettings - возвращает или задает объект PlaySettings, который позволяет определить клип и параметры его воспроизведения во
    время презентации.
  • SoundEffect - возвращает или задает объект SoundEffect, который позволяет определить звуковое сопровождение, сопровождающее
    анимацию. Основные свойства и методы этого объекта приведены на предыдущем шаге.
  • TextLevelEffect - определяет, до какого уровня анимируется текст. Возможные значения:
    ppAnimateByAllLevels (16), ppAnimateByFifthLevel (5), ppAnimateByFirstLevel (1), ppAnimateByFourthLevel (4), ppAnimateBySecondLevel (2),
    ppAnimateByThirdLevel (3), ppAnimateLevelMixed (-2), ppAnimateLevelNone (0).
  • TextUnitEffect - определяет, как будет анимирован текст: абзац за абзацем, слово за словом, буква за буквой. Возможные значения:
    ppAnimateByCharacter (2), ppAnimateByParagraph (0), ppAnimateByWord (1), ppAnimateUnitMixed (-2).

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

   
Вот его текст:

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;
    ComboBox5: TComboBox;
    Label8: TLabel;
    ComboBox6: TComboBox;
    Label9: TLabel;
    ComboBox7: TComboBox;
    Label10: TLabel;
    ComboBox8: TComboBox;
    Label11: TLabel;
    ComboBox9: TComboBox;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure ComboBox4Change(Sender: TObject);
    procedure ComboBox5Change(Sender: TObject);
    procedure ComboBox6Change(Sender: TObject);
    procedure ComboBox7Change(Sender: TObject);
    procedure ComboBox8Change(Sender: TObject);
    procedure ComboBox9Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    procedure Slide1(Sender: TObject);
    procedure Slide2(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;
  A: Array[1..2,1..2,1..5] Of Integer =  // Параметры анимации
  ( ((1, 5, 0, 1, $00000F04),
    (1, 5, 0, 1, $00000F04)),
    ((1, 5, 0, 1, $00000F04),
    (1, 5, 0, 1, $00000F04))
   );
  sld: integer; // Номер слайда
  fig: integer; // Номер фигуры
  B: Array [1..50] of integer = // Вид анимации
  (
 $00000F04, $00000301, $00000302, $00000C02, $00000C01,
 $00000401, $00000402, $00000F05, $00000F07, $00000F08,
 $00000504, $00000501, $00000507, $00000505, $00000503,
 $00000508, $00000506, $00000502, $00000D10, $00000D0F,
 $00000D0E, $00000101, $00000F06, $00000601, $00000701,
 $00000F01, $00000F02, $00000F03, $00000D04, $00000D07,
 $00000D01, $00000D03, $00000D02, $00000F0A, $00000000,
 $00000D0A, $00000F0B, $00000F0C, $00000201, $00000D1D,
 $00000E02, $00000E01, $00000E04, $00000D17, $00000A03,
 $00000D1C, $00000804, $00000F10, $00000B04, $00000D15
  );
//{$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);
begin
 W.Presentations.Add;
 W.ActivePresentation.Slides.Add(1,1); //Второй параметр - ppLayoutTitle
 W.ActivePresentation.Slides.Add(2,1); //Второй параметр - ppLayoutTitle
 Slide1(Self); // Заполнить 1-й слайд
 Slide2(Self); // Заполнить 2-й слайд
 sld:=1; // Номер слайда
 fig:=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.Slide2(Sender: TObject);
//Добавить еще один слайд
var
   V,V1: Variant;
begin
 V:=W.ActivePresentation.Slides.Item(2).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(2).Shapes.Item(2)
   .TextFrame.TextRange;
 V1.Characters(Start:=1,Length:=0).Text:='Описание продукции, ее уникальность;' 
    + Chr(13) + 'Стадия развития проекта;'+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.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.ComboBox2Change(Sender: TObject);
begin
  sld:=ComboBox2.ItemIndex+1;
  fig:=ComboBox4.ItemIndex+1;
  ComboBox5Change(Self);
  ComboBox6Change(Self);
  ComboBox7Change(Self);
  ComboBox8Change(Self);
  ComboBox9Change(Self);
end;

procedure TForm1.ComboBox4Change(Sender: TObject);
begin
  fig:=ComboBox4.ItemIndex+1;
  sld:=ComboBox2.ItemIndex+1;
  ComboBox5Change(Self);
  ComboBox6Change(Self);
  ComboBox7Change(Self);
  ComboBox8Change(Self);
  ComboBox9Change(Self);
end;

procedure TForm1.ComboBox5Change(Sender: TObject);
begin
  A[sld,fig,1]:= ComboBox5.ItemIndex+1;
  if A[sld,fig,1]=3 then A[sld,fig,1]:=-2;
end;

procedure TForm1.ComboBox6Change(Sender: TObject);
begin
  A[sld,fig,2]:= ComboBox6.ItemIndex+1;
end;

procedure TForm1.ComboBox7Change(Sender: TObject);
begin
  A[sld,fig,3]:= ComboBox7.ItemIndex;
  if A[sld,fig,1]=4 then A[sld,fig,1]:=-2;
end;

procedure TForm1.ComboBox8Change(Sender: TObject);
begin
  A[sld,fig,4]:= ComboBox8.ItemIndex;
end;

procedure TForm1.ComboBox9Change(Sender: TObject);
begin
  A[sld,fig,5]:= B[ComboBox9.ItemIndex+1];
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  V,X: Variant;
  i,j:integer;
begin
  V:=W.ActivePresentation.SlideShowSettings;
  V.StartingSlide:=1;
  V.EndingSlide:=2;
  V.RangeType:=2;//ppShowSlideRange
  // Задание параметров анимации для каждого объекта
  for i:=1 to 2 do
   for j:=1 to 2 do
   begin
     V:=W.ActivePresentation.Slides.Item(i).Shapes.Item(j).AnimationSettings;
     V.AdvanceMode:=A[i,j,1];
     V.AdvanceTime:=A[i,j,2];
     V.AfterEffect:=A[i,j,3];
     V.Animate:=A[i,j,4];
     V.EntryEffect:=A[i,j,5];
   end;
  // Запустить показ слайдов
  W.ActivePresentation.SlideShowSettings.Run;
end;

end.

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

   
Внешний вид приложения на этапе задания параметров приведен на рисунке 1.


Рис.1. Внешний вид приложения

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

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий