Компонент Animate, значок якого знаходиться на вкладці Win32 (рис. 11.1), дозволяє відтворювати просту анімацію, кадри якої знаходяться в AVI-файлі.
Рис. 11.1. Значок компонента Animate
Примітка
Хоча анімація, яка перебуває в AVI-файлі може супроводжуватися звуковими ефектами (так це – можна перевірити, наприклад, за допомогою стандартної програми Програвач Windows Media), компонент Animate може відтворювати лише зображення. Для повноцінного відтворення супроводжуваної звуком анімації слід використовувати компонент меdiaPlayer.
Компонент Animate додається до форми звичайним чином. Після додавання компонента до форми слід встановити значення його властивостей. Властивості компонента Animate перераховані в табл. 11.1.
Таблиця 11.1. Властивості компонента Animate
Властивість | Визначає |
Name | Ім’я компонента. використовується для доступу до властивостей компонента і управлінням його поведінкою |
FileName | Ім’я AVI-файлу в якому знаходиться анімація, яка відображається за допомогою компонента |
StartFrame | Номер кадру, з якого починається відображення анімації |
stopFrame | Номер кадру, на якому закінчується відображення анімації |
Activate | Ознака активізації процесу відображення кадрів анімації |
Color | Колір фону компонента (колір екрану), на якому відтворюється анімація |
Transparent | Режим використання прозорого кольору при відображенні анімації |
Repetitions | Кількість повторів відображення анімації |
Слід ще раз звернути увагу, що компонент Animate призначений для відтворення AVI-файлів, які містять тільки анімацію. При спробі привласнити записати в властивість FileName ім’я файлу, який містить звук, Delphi виводить повідомлення про неможливість відкриття зазначеного файлу (Can not open AVI). Щоб побачити, що перебувати в AVI-файл: анімація і звук або тільки анімація, потрібно з Windows розкрити потрібну папку, виділити AVI-файл і з контекстного меню вибрати команду Властивості. У результаті цього відкриється вікно Властивості, на вкладці Підсумок (рис. 11.2) якого буде виведена докладна інформація про вміст обраного файлу.
Наступна програма, текст якої наведено в лістингу 11.1, демонструє використання компонента Animate для відображення в діалоговому вікні програми анімації. Вид форми програми наведено на рис. 11.3, а значення властивостей компонента Animatel – в таблиці 11.2.
Рис. 11.2. На вкладці Підсумок відображається інформація про AVI-файлі
Рис. 11.3. Форма програми Перегляд анімації
Таблиця 11.2. Значення властивостей компонента Animate1
Властивість | Значення |
FileName | bart.avi |
Active | False |
Transparent | True |
Після запуску програми в формі виводиться перший кадр анімації. Програма забезпечує два режими перегляду анімації: безперервний і покадровий.
Кнопка 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 | ![]() |
Видалення файлу в кошик |