Компонент 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.