18.3.9. TAnimate - отображение анимации
Компонент TAnimate представляет собой проигрыватель видеоклипов формата AVI (Audio Video Interleaved - чередование аудио и видео). Компонент воспроизводит видеочасть файла AVI и игнорирует его звуковое сопровождение. Он способен показывать лишь несжатое изображение или изображение, сжатое по методу RLE (Run-Length Encoding). Изображение воспроизводится в отдельном потоке команд, что освобождает ресурсы программы для выполнения необходимой работы на фоне демонстрации клипа.
Если вы захотите посмотреть компонент в действии (рис. 18.24), выполните следующее:
Рис. 18.24. Демонстрация компонента TAnimate
procedure TForml.BitBtnlClick(Sender: TObject);
begin
Animatel.FileName := 'cool.avi'; // Указываем файл с клипом
Animatel.Active := True; // Запускаем клип
ProgressBarl.Show; // Показываем ProgressBar
Timeri.Enabled := True; // Включаем таймер
end;
Timer1:
procedure TFormI.TimerlTimer(Sender: TObject) ;
begin
ProgressBarl.Position := ProgressBarl.Position + 1;
if ProgressBarl.Position >= ProgressBarl.Max then
begin
Timeri.Enabled := False; // Выключаем , таймер
ProgressBarl.Positinr := о; // Готовим новый запуск
ProgressBarl.Hide; // Прячем ProgressBar
Animatel.Stop // Останавливаем клип
end;
end;
Свойства компонента:
property Active: Boolean;
|
Разрешает/запрещает демонстрацию клипа. Во время демонстрации содержит True |
|
property AutoSize: Boolean; |
Если содержит True, компонент автоматически устанавливает свои размеры так, чтобы полностью разместить изображение кадра |
|
property Center: Boolean;
|
Центрирует изображение кадра в границах компонента по горизонтали и по вертикали |
|
TCommonAVI = (aviNone, aviFind- Folder, aviFindFile, aviFindCom- puter, aviCopyFiles, aviCopyFile, aviRecycleFile, aviEmptyRecycle, aviDeleteFile) ; property ComrnonAVI: TCommonAVI; |
Задает один из стандартных видеоклипов, входящтх в библиотеку SHELL32 . DLL (СМ. рис. 18.25)
|
|
property FileName: TFileName; |
Связывает компонент с AVI-файлом |
|
property FrameCount: Integer;
|
Содержит количество кадров, показанных с начала демонстрации клипа |
|
property FrameHeight: Integers; |
Высота в пикселях одного кадра клипа |
|
property FrameWidth: Integers; |
Ширина кадра |
|
property Open: Boolean; |
Содержит True, если компонент связан с AVI-клипом и готов к работе |
|
property Repetitions: Integers;
|
Определяет количество повторений клипа. Если 0, клип повторяется до тех пор, пока свойство Active содержит True |
|
property ResHandle: THandle;
|
Указывает дескриптор ресурсного файла, содержащего AVI-клип |
|
property ResHandle: THandle;
|
Указывает идентификатор ресурса с клипом в ресурсном файле |
|
property ResName: Strings;
|
Указывает имя ресурса с клипом в ресурсном файле |
|
property StartFrame: Smallint;
|
Содержит номер начального кадра демонстрации (нумерация кадров начинается с 1) |
|
property StopFrame: Smallint;
|
Содержит номер конечного кадра демонстрации (нумерация кадров начинается с 1) |
property Timers: Boolean; property Transparent: Boolean; |
Разрешает/запрещает синхронизацию по таймеру. Если True, демонстрация синхронизируется сигналами таймера. Если False, для демонстрации используется независимый поток команд Если содержит True, фон клипа не накладывается на фон компонента |
С помощью свойства commonAvi можно заставить компонент показывать один из стандартных видеоклипов, показанных на рис. 18.25.
Рис. 18.25 . Видеоклипы свойства Соmmоn АVI
Методы компонента:
procedure Play(FromFrame, ToFrame: Word; Count: Integer); |
Демонстрирует Count раз подряд фрагмент клипа, начиная с кадра FromFrame по ToFrame включительно (нумерация кадров начинается с 1) |
procedure Reset; procedure Seek(Frame: Smallint) ; procedure Stop; |
Восстанавливает исходное состояние компонента. Свойство Open вновь становится True, но свойство Active = False Пропускает и не показывает кадр с номером Frame (нумерация кадров начинается с 1) Прекращает показ клипа |
Для компонента определены следующие события: |
|
property OnClose: TNotifyEvent; property OnOpen: TNoti-fyEvent; property OnStart: TNoti-fyEvent; property OnStop: TNotifyEvent; |
Возникает при установке значения False в свойство Open. Например, когда компонент демонстрирует несколько видеоклипов подряд Возникает при установке значения True в свойство Open Возникает в момент начала демонстрации Возникает в момент прекращения демонстрации |