Вкладка 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.



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

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