Компонент Animate
Компонент Animate, значок которого находится на вкладке Win32 (рис. 11.1), позволяет воспроизводить простую анимацию, кадры которой находятся в AVI-файле.
Рис. 11.1. Значок
компонента Animate
Компонент Animate добавляется к форме обычным образом. После добавления компонента к форме следует установить значения его свойств. Свойства компонента Animate перечислены в табл. 11.1.Хотя анимация, находящаяся в AVI-файле может сопровождаться звуковыми эффектами (так ли это — можно проверить, например, при помощи стандартной программы Проигрыватель Windows Media), компонент Animate обеспечивает воспроизведение только изображения. Для полноценного воспроизведения сопровождаемой звуком анимации следует использовать компонент меdiaPlayer.
Таблица 11.1.
Свойства компонента Animate
Свойство |
Определяет |
||
Name |
Имя компонента. Используется
для доступа к свойствам компонента и управлением его поведением |
||
FileName |
Имя AVI-файла в котором
находится анимация, отображаемая при помощи компонента |
||
StartFrame |
Номер кадра, с которого
начинается отображение анимации |
||
stopFrame |
Номер кадра, на котором
заканчивается отображение анимации |
||
Activate |
Признак активизации процесса
отображения кадров анимации |
||
Color |
Цвет фона компонента (цвет
"экрана"), на котором воспроизводится анимация |
||
Transparent |
Режим использования "прозрачного"
цвета при отображении анимации |
||
Repetitions |
Количество повторов отображения
анимации |
||
Следующая программа, текст которой приведен в листинге 11.1, демонстрирует использование компонента Animate для отображения в диалоговом окне программы анимации. Вид формы программы приведен на рис. 11.3, а значения свойств компонента Animatel — в таблице 11.2.
Рис. 11.2.
На вкладке Сводка отражается информация об AVI-файле
Рис. 11.3. Форма
программы Просмотр анимации
Таблица 11.2.
Значения свойств компонента Animate1
Свойство
|
Значение |
||
FileName |
bart.avi |
||
Active |
False |
||
Transparent |
True |
||
Кнопка Button1 используется как для инициализации процесса воспроизведения анимации, так и для его приостановки. Процесс непрерывного воспроизведения анимации инициирует процедура обработки события Onclick на кнопке Пуск, которая присваивает значение True свойству Active. Эта же процедура заменяет текст на кнопке Button1 с Пуск на Стоп. Режим воспроизведения анимации выбирается при помощи переключателей Ra-dioButton1 и RadioButton2. Процедуры обработки события Onclick на этих переключателях изменением значения свойства Enabled блокируют или, наоборот, делают доступными кнопки управления: активизации воспроизведения анимации (Buttoni), перехода к следующему (Button2) и предыдущему (Buttons) кадру. Во время непрерывного воспроизведения анимации процедура обработки события OnCkick на кнопке Стоп (Buttoni) присваивает значение False свойству Active и тем самым останавливает процесс воспроизведения анимации.
Листинг 11.1.
Использование компонента Animate
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Animate1: TAnimate; // компонент Animate
Button1: TButton; // кнопка Пуск-Стоп
Button2: TButton; // следующий кадр
Button3: TButton; // предыдущий кадр
RadioButton1: TRadioButton; // просмотр всей анимации
RadioButton2: TRadioButton; // покадровый просмотр
procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject);
private
{ Private declarations } public
{ Public declarations ) end;
var
Form1: TForm1; // форма
CFrame: integer; // номер отображаемого кадра
// в режиме покадрового просмотра implementation {$R *.DFM}
// к следующему кадру
procedure TForm1.Button2Click(Sender: TObject);
begin
if CFrame = 1 then Button2.Enabled := True; if CFrame < Animate1.FrameCount then begin
CFrame := CFrame + 1;
// вывести кадр
Animate1.StartFrame := CFrame;
Animate1.StopFrame := CFrame;
Animate1.Active := True;
if CFrame = Animatel.FrameCount // текущий кадр — последний
then Button2.Enabled:=False; end; end;
// к предыдущему кадру
procedure TForm1.Button3Click(Sender: TObject);
begin
if CFrame = Animate1.FrameCount
then Button2.Enabled := True; if CFrame > 1 then begin
CFrame := CFrame — 1;
// вывести кадр
Animate1.StartFrame := CFrame;
Animate1.StopFrame := CFrame;
Animate1.Active := True;
if CFrame = 1 // текущий кадр — первый
then Form1.Button3.Enabled := False; end; end;
// активизация режима просмотра всей анимации procedure TForml.RadioButtonlClick(Sender: TObject); begin
Buttonl.Enabled:=True; //доступна кнопка Пуск
// сделать недоступными кнопки покадрового просмотра
Form1.Button3.Enabled:=False ;
Form1.Button2.Enabled:=False; end;
// активизация режима покадрового просмотра
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
Button2.Enabled:=True; // кнопка Следующий кадр доступна Buttons.Enabled:=False; // кнопка Предыдущий кадр недоступна
// сделать недоступной кнопку Пуск — вывод всей анимации Buttonl.Enabled:=False; end;
// пуск и остановка просмотра анимации procedure TForm1.ButtonlClick(Sender: TObject); begin
if Animate1.Active = False // в данный момент анимация не выводится
then begin
Animate1.StartFrame:=l; // вывод с первого
Animate1.StopFrame:=Animate1.FrameCount; // по последний кадр
Animate1.Active:=True;
Button1.caption:='Стоп';
RadioButton2.Enabled:=False; end
else // анимация отображается begin
Animate1.Active:=False; // остановить отображение
Button1.caption:='Пуск';
RadioButton2.Enabled:=True; end; end;
end.
Компонент Animate позволяет программисту использовать в своих программах стандартные анимации Windows. Вид анимации определяется значением свойства СommonAVI. Значение свойства задается при помощи именованной константы. В табл. 11.3 приведены некоторые значения констант, вид анимации и описание процесса, для иллюстрации которого используется эти анимации.
Таблица 11.3.
Значение свойства comonAVi определяет анимацию
Значение |
Анимация |
Процесс |
||
aviCopyFiles | ![]() |
Копирование файлов | ||
AviDeleteFile | ![]() |
Удаление файла | ||
aviRecycleFile | ![]() |
Удаление файла в корзину |