Вкладка Win32. Компонент TAnimate

   
На этом шаге мы рассмотрим компонент TAnimate.

   
Компонент TAnimate (Анимация AVI) позволяет организовать в форме небольшую
анимацию - воспроизвести клип в формате AVI без воспроизведения звука. В зависимости от цели применения
компонент TAnimate можно настроить заранее на этапе проектирования или динамически во время работы
программы.

   
Рассмотрим свойства компонента TAnimate.

   

Таблица 1. Свойства компонента TAnimate

СвойствоОписание
property Active: Boolean;Разрешает/запрещает демонстрацию клипа. Во время демонстрации содержит значение True
property AutoSize: Boolean;Если содержит значение True, компонент автоматически устанавливает свои размеры так, чтобы полностью вместить изображение кадра
property Center: Boolean;Центрирует изображение кадра в границах компонента по горизонтали и по вертикали
type TCommonAVI = (aviNone, aviFindFolder, aviFindFile, aviFindComputer, aviCopyFiles, aviCopyFile, aviRecycleFile, aviEmptyRecycle, aviDeleteFile);
property CommonAVI: TCommonAVI;
Задает один из стандартных видеоклипов, входящих в библиотеку SHELL32.DLL. Значения свойства:

  • aviNone - клип указан в свойстве FileName;
  • aviFindFolder - поиск папки;
  • aviFindFile - поиск файла;
  • aviFindComputer - поиск компьютера;
  • aviCopyFiles - копирование файлов;
  • aviCopyFile - копирование файла;
  • aviRecycleFile - перемещение файла в корзину;
  • aviEmptyRecycle - очистка корзины;
  • aviDeleteFile - удаление файла.
property FileName: TFileName;Связывает компонент с AVI-файлом
property FrameCount: Integer;Содержит количество кадров, показанных с начала демонстрации клипа
property FrameHeight: Integer;Высота в пикселях одного кадра клипа
property FrameWidth: Integer;Ширина клипа
property Open: Boolean;Содержит значение True, если компонент связан с AVI-клипом и готов к работе
property Repetitions: Integer;Определяет количество повторений клипа. Если 0, клип повторяется до тех пор, пока свойство Active
содержит значение True
property ResName: String;Определяет имя ресурса с клипом в ресурсном файле
property StartFrame: SmallInt;Содержит номер начального кадра демонстрации (нумерация кадров начинается с 1)
property StopFrame: SmallInt;Содержит номер конечного кадра демонстрации (нумерация кадров начинается с 1)
property Timers: Boolean;Разрешает/запрещает синхронизацию по таймеру. Если содержит значение True,
демонстрация синхронизируется сигналами таймера. Если содержит значение False, для демонстрации
используется независимый поток команд
property Transparent: Boolean;Если содержит значение True, фон клипа не накладывается на фон компонента


Рис.1. Стандартные видеоклипы, определяемые свойством CommonAVI

   
Методы компонента перечислены в таблице 2.

Таблица 2. Методы компонента TAnimate

МетодОписание
procedure Play (FromFrame, ToFrame: Word; Count: Integer);Демонстрирует Count раз подряд фрагмент клипа, начиная с кадра FromFrame по ToFrame
включительно (нумерация кадров начинается с 1)
procedure Reset;Восстанавливает исходное состояние компонента. Свойство Open вновь становится равным значению
True, но свойство Active=False
procedure Seek (Frame: SmallInt);Пропускает (не показывает) кадр с номером Frame (нумерация кадров начинается с 1)
procedure Stop;Прекращает показ клипа

   
События компонента TAnimate перечислены в таблице 3.

Таблица 3. События компонента TAnimate

СобытиеОписание
property OnClose: TNotifyEvent;Возникает при установке значения False в свойство Open
property OnOpen: TNotifyEvent;Возникает при установке значения True в свойство Open
property OnStart: TNotifyEvent;Возникает в момент начала демонстрации
property OnStop: TNotifyEvent;Возникает в момент прекращения демонстрации

   
Для запуска клипа можно использовать следующий обработчик щелчка кнопки:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Animate1.Open := True;
  Animate1.Active := True;
end;

   
Разумеется, посмотреть фильм, если даже файл с фильмом имеет расширение .avi, вы не сможете.
Просматривать можно только специально подготовленные клипы.

   
Если вы захотите посмотреть компонент в действии (рис.1), выполните следующее:


Рис.2. Демонстрация компонента

   

  • Скопируйте файл cool.avi в ваш рабочий каталог (каталог Demos\CoolStuf располагается в
    каталоге, где находится Delphi).
  • На пустую форму положите компоненты Animate, ProgressBar, Timer (страница System)
    и кнопку BitBtn. Таймер необходим для имитации достаточно длительного по времени процесса,
    который будет отображаться в ProgressBar на фоне вращающейся надписи "COOL" в
    компоненте Animate.
  • Установите в свойство Enabled компонента Timer1 значение False, а в его же свойство
    Interval - значение 10. Поместите в свойство Visible компонента ProgressBar1 значение
    False и сохраните форму в том же каталоге, куда вы скопировали файл COOL.AVI.
  • Создайте такой обработчик события OnClick кнопки BitBtn1:
    procedure TForm1.BitBtnlClick(Sender: TObject); 
    begin 
      Animate1.FileName := 'cool.avi'; // Указываем файл с клипом. 
      Animate1.Active := True; // Запускаем клип.
      ProgressBar1.Show; // Показываем ProgressBar.
      Timer1.Enabled := True; // Включаем таймер.
    end; 
    
  • Создайте такой обработчик события OnTimer компонента Timer1:
    procedure TForm1.Timer1Timer(Sender: TObject) ; 
    begin 
      ProgressBar1.Position := ProgressBar1.Position + 1; 
      if ProgressBar1.Position >= ProgressBar1.Max then 
        begin 
          Timer1.Enabled := False; // Выключаем таймер.
          ProgressBar1.Position := 0; // Готовим новый запуск.
          ProgressBar1.Hide; // Прячем ProgressBar.
          Animate1.Stop // Останавливаем клип.
        end; 
    end; 
    

Текст этого примера можно взять здесь.

   
На следующем шаге мы рассмотрим компонент TDateTimePicker.



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

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