368______________________________________________Глава 5 а!

В компоненте Animate предусмотрены события OnClose, OnOpen, OnStart и

OnStop, генерируемые соответственно в моменты закрытия и открытия компонен-
та, начала и окончания воспроизведения.

Давайте теперь построим тестовое приложение, показывающее возможности
компонента Animate. Установите в том приложении, которое вы уже начали,
свойство Visible компонента Animate в false. Это надо для того, чтобы изображе-
ние возникало только тогда, когда произойдет соответствующее событие: копиро-
вание файлов, поиск файлов и т.п. В тестовом приложении мы будем имитировать
начало и окончание события, которое должно сопровождаться мультипликацией,
нажатиями кнопок запуска и останова воспроизведения. Поэтому верните значе-
ние свойства Repetitions в 0, чтобы воспроизведение длилось до окончания собы-
тия. Свойство Active установите в false. Полезно также установить свойство Auto-
Size в false, а свойство Center в true, чтобы изображение всегда появлялось в цент-
ре экрана.

А теперь добавьте в приложение 3 кнопки (рис. 5.19). Первая из них (назовите
ее BWind) будет начинать процесс воспроизведения поочередно всех стандартных
клипов Windows. Вторая кнопка (назовите ее BStop) пусть завершает воспроизве-
дение очередного клипа. А третью кнопку (назовите ее BFile) введем для того, что-
бы показать, что компонент может воспроизводить изображения из заданного файла
•avi. Чтобы пользователь мог выбрать файл изображения, добавьте на форму компо-
нент OpenDialog и задайте его фильтр (свойство Filter) равным «видео *.avi | *.avi».

Демонстрация возможностей компонента Animate:

воспроизведение стандартного клипа Windows (а) и          ,        --/      ^>   ,
воспроизведение файла avi (б)                            ;_\                   •_1)

Клипы Windows       Файл      |''     Stop    |j

^'''!!1111''''!JJ'111'1'U'"^^^^              '  п]
Клипы Widows j I     Фаил    1j       Slop       |

Теперь все приготовления закончены и осталось только написать обработчик:

событий. Код обработчиков может иметь вид:

int i;

//———————————————————————-

void _fastcall TFormI::BWindClick(TObject *Sender)
{

Animatel->Visible = true;

i = 1;

Animatel->CommonAVI = aviFindFolder;

Animatel->Active = true;

}

//———————————————————————-

void _fastcall TFormI::BStopClicl< (TObject *Sender)
(

Animatel->Stop() ;

)

//———————————————————————-

void _fastcall TFormI::AnimatelStop(TObject *Sender)
{

i++;            •                                                        :