Programming: Delphi
Иллюстрированный самоучитель по Delphi 7 для начинающих
Компонент Animate
Компонент Animate,
значок которого находится на вкладке Win32 (рис. 11.1), позволяет воспроизводить
простую анимацию, кадры которой находятся в AVI-файле.
Рис. 11.1. Значок
компонента Animate
Примечайте
Хотя анимация, находящаяся в AVI-файле
может сопровождаться звуковыми эффектами (так ли это — можно проверить, например,
при помощи стандартной программы Проигрыватель Windows Media), компонент Animate
обеспечивает воспроизведение только изображения. Для полноценного воспроизведения
сопровождаемой звуком анимации следует использовать компонент меdiaPlayer.
Компонент Animate добавляется
к форме обычным образом. После добавления компонента к форме следует установить
значения его свойств. Свойства компонента Animate перечислены в табл. 11.1.
Таблица 11.1.
Свойства компонента Animate
|
|
|
|
|
|
|
|
|
|
Имя компонента. Используется
для доступа к свойствам компонента и управлением его поведением
|
|
|
|
Имя AVI-файла в котором
находится анимация, отображаемая при помощи компонента
|
|
|
|
Номер кадра, с которого
начинается отображение анимации
|
|
|
|
Номер кадра, на котором
заканчивается отображение анимации
|
|
|
|
Признак активизации процесса
отображения кадров анимации
|
|
|
|
Цвет фона компонента (цвет
"экрана"), на котором воспроизводится анимация
|
|
|
|
Режим использования "прозрачного"
цвета при отображении анимации
|
|
|
|
Количество повторов отображения
анимации
|
|
|
|
|
|
Следует еще раз обратить
внимание, что компонент Animate предназначен для воспроизведения AVI-файлов,
которые содержат только анимацию. При попытке присвоить записать в свойство
FileName имя файла, который содержит звук, Delphi выводит сообщение о невозможности
открытия указанного файла (Cannot open AVI). Чтобы увидеть, что находиться
в AVI-файле: анимация и звук или только анимация, нужно из Windows раскрыть
нужную папку, выделить AVI-файл и из контекстного меню выбрать команду Свойства.
В результате этого откроется окно Свойства, на вкладке Сводка
(рис. 11.2) которого будет выведена подробная информация о содержимом выбранного
файла.
Следующая программа,
текст которой приведен в листинге 11.1, демонстрирует использование компонента
Animate для отображения в диалоговом окне программы анимации. Вид формы программы
приведен на рис. 11.3, а значения свойств компонента Animatel — в таблице 11.2.
Рис. 11.2.
На вкладке Сводка отражается информация об AVI-файле
Рис. 11.3. Форма
программы Просмотр анимации
Таблица 11.2.
Значения свойств компонента Animate1
После запуска программы
в форме выводится первый кадр анимации. Программа обеспечивает два режима просмотра
анимации: непрерывный и покадровый.
Кнопка Button1 используется
как для инициализации процесса воспроизведения анимации, так и для его приостановки.
Процесс непрерывного воспроизведения анимации инициирует процедура обработки
события Onclick на кнопке Пуск, которая присваивает значение True свойству Active.
Эта же процедура заменяет текст на кнопке Button1 с Пуск на Стоп. Режим воспроизведения
анимации выбирается при помощи переключателей Ra-dioButton1 и RadioButton2.
Процедуры обработки события Onclick на этих переключателях изменением значения
свойства Enabled блокируют или, наоборот, делают доступными кнопки управления:
активизации воспроизведения анимации (Buttoni), перехода к следующему (Button2)
и предыдущему (Buttons) кадру. Во время непрерывного воспроизведения анимации
процедура обработки события OnCkick на кнопке Стоп (Buttoni) присваивает значение
False свойству Active и тем самым останавливает процесс воспроизведения анимации.
Листинг 11.1.
Использование компонента Animate
unit
ShowAVI_; interface
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 |
|
Удаление
файла в корзину |
|
Назад | Оглавление | Вперёд
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.
© 2005
|