
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •IBplementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •Interface
- •Часть 1 I. 104
- •Implementation
- •Implementation
- •Implementation
- •Часть I
- •Р ис. 1.46. Окно программы Звуки Windows
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •168 Част
- •Implementation
- •Часть 1
- •Interface uses
- •Implementation
- •Interface
- •Implementation
- •Часть 1
- •Часть 1 I Примеры и задачи
- •Часть 1 I Примеры и задачи
- •Implementation
- •205 Часть
- •Interface
- •Implementation
- •216 Часть 1
- •Поле т ип Размер Информация
- •Часть 1
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Часть 2 Таблица 2.2 (окончание)
- •252 Часть 2
- •Часть 2 I Delphi — краткий справочник
- •Часть 2
Implementation
{$R *.DFM} .
Во время создания формы надо настроить
компонент MediaPlayerl:
MediaPlayerl.Display = Panell
MediaPlayerl.FileName = delphi_s.avi - имя файла
MediaPlayerl. AutoOpen = True
MediaPlayerl. Visible - False
// щелчок на кнопке OK
procedure TForml.ButtonlClick(Sender: TObject);
begin
MediaPlayerl.Play; // воспроизведете анитации end;
procedure TForml. FormCreate (Sender: TObject);
begin
{ Размер области отображения анимании должен соответствовать размеру Размер анимации в файле delphi_s^vi 60x60 )
// зададим размер области вывода MediaPlayerl.DisplayRect :=Rect (0,0,60, 60) ;
end; end.
44. Напишите программу, используя которую можно просматривать анимацию (содержимое AVI-файла) в р-еальном масштабе времени или по кадрам (рис. 1.44). Для отображения анимации используйте компонент Animate. Обратите внимание, что этот компонент работает только с AVI-файлами, в которых нет звука (для отображения анимации, сопровождаемой звуком, используется компонент MediaPlayer). Для выбора файла анимации используйте стандартное диалоговое окно Открытие файла. Рекомендуемый вид окна программы приведен на рис. 1.45.
{ Просмотр анимации — содержимого AVI-^йлЗ . (с) Культин Н.Б., 2003.
**** ВНИМАНИЕ! ****
Компонент Animate отображает AVl-фашгы, в которых нет звука! При попытке открыть файл, в котором находится сопровождаемая звуком анимация, возникает ошибка. }
unit ShowAVI_; interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls;
112
Часты
Примеры и задачи
113
Рис. 1.44. Окно программы Просмотр анимации
Рис. 1.45. Форма программы Просмотр анимации
type
// компонент Animate // Пуск-Стоп // следующий кадр // предыдущий кадр
TForml = class(TForm) Animatel: TAnimate; Buttonl: TButton; Button2: TButton; Button3: TButton; // режим просмотра
RadioButtonl: TRadioButton; // просмотр всей анимации RadioButton2: TRadioButton; // покадровый
OpenDialogl: TOpenDialog; // диалоговое окно Открытие файла Button4: TButton; // активизация окна Открытие файла
GroupBoxl: TGroupBox; Label1: TLabel; Editl: TEdit;
procedure ButtonlClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure RadioButtonlClick(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure EditlKeyPress(Sender: TObject; var Key: Char);
procedure Button4Click(Sender: TObject);
// это объявление вставлено сюда вручную procedure OpenAVI;
private
I Private declarations } public
/ Public declarations } end;
var
Forml: TForml; // форма
CFrame: integer; // номер кадра, отображаемого
// в режиме покадрового просмотра
Implementation
{$R *.DFM}
// нажатие клавиши в поле Файл
procedure TForml.EditlKeyPress(Sender: TObject; var Key: Char);
114
b
egin
Час
ПР
меры и задачи
115
end;
if (Key = #13) and (Length(Editl.Text) о 0) then OpenAVI;
begin
Buttonl.Enabled:=True; // доступна кнопка Пуск
// сделать недоступными кнопки покадрового просмотра
Forml.Button3.Enabled:=False;
Forml.Button2.Enabled:=False;
// открывает стандартное диалоговое
// окно Открытие файла
procedure TForml.Button4Click(Sender: TObject);
begin
OpenDialogl.Title := 'Выбрать AVI-файл1;
if OpenDialogl.Execute then
begin
Editl.Text :■ OpenDialogl.FileName; OpenAVI; end; end;
// пуск и остановка просмотра анимации procedure TForml.ButtonlClick(Sender: TObject); begin
if Animatel.Active = False // в данный момент анимация
// не выводится then begin
Animatel.StartFrame:=l; // вывод с первого кадра Animatel.StopFrame:=Animatel.FrameCount; // по последний
// кадр Animatel.Active:=True,■
Buttonl.caption:='Стоп';
RadioButton2.Enabled:=False; end '
else // анимация отображается begin
Animatel.Active:=False; // остановить отображение
Buttonl.caption:='Пуск1;
RadioButton2.Enabled:=True; end; end;
// активизация режима просмотра всей анимации procedure TForml.RadioButtonlClick(Sender: TObject);
end;
// активизация режима покадрового просмотра procedure TForml.RadioButton2Click(Sender: TObject);
begin
Button2.Enabled:=True; // кнопка Следующей кадр доступна Button3.Enabled:=False; // кнопка Предыдущий кадр недоступна
// сделать недоступной кнопку Пуск — вывод всей анимации Buttonl.Enabled:=False; Animatel.StartFrame:=1;
CFrame:=1; end;
// переход к следующему кадру
procedure TForml.Button2Click(Sender: TObject);
begin
if CFrame < Animatel.FrameCount then begin
CFrame := CFrame + 1;
// вывести кадр
Animatel.StartFrame := CFrame;
Animatel.StopFrame := CFrame;
Animatel.Active := True;
if CFrame = Animatel.FrameCount // текущий кадр —
// последний
then Button2.Enabled:=False;
end; if CFrame > 1 then Button3.Enabled := True;
end;
// переход к предыдущему кадру
procedure TForml.Button3Click(Sender: TObject)
begin
if CFrame > 1 then
116