Основы языка Delphi

79b4045b

Использование компонента Animate



Листинг 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 приведены некоторые значения констант, вид анимации и описание процесса, для иллюстрации которого используется эти анимации.



Содержание раздела