Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть III. Компоненты и программы / Использование компонентов общего назначения / Компоненты страницы Win32 /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


TAnimate - отображение анимации - Программирование от RIN.RU
TAnimate - отображение анимации

Компонент TAnimate представляет собой проигрыватель видеоклипов формата AVI (Audio Video Interleaved - чередование аудио и видео). Компонент воспроизводит видеочасть файла AVI и игнорирует его звуковое сопровождение. Он способен показывать лишь несжатое изображение или изображение, сжатое по методу RLE (Run-Length Encoding). Изображение воспроизводится в отдельном потоке команд, что освобождает ресурсы программы для выполнения необходимой работы на фоне демонстрации клипа.


Если вы захотите посмотреть компонент в действии (рис. 18.24), выполните следующее:




  • Скопируйте файл demos | cool: cool. avi в ваш рабочий каталог (каталог demos распологался в каталоге размещения Delphi).

  • На пустую форму положите компоненты Animate, ProgressBar, Timer (страница System) и кнопку BitBtn. Таймер необходим для имитации достаточно длительного по времени процесса, который будет отображаться в ProgressBar на фоне вращающейся надписи "COOL" в компоненте Animate.

  • Установите в свойство Enabled компонента Timer1 значение False, а в его же свойство interval - значение 10. Поместите в свойство Visible компонента ProgressBarl значение False и сохраните форму в том же каталоге, куда вы скопировали файл COOL.AVI.

  • Создайте такой обработчик события OnClick кнопки BitBtn1:


    procedure TForml.BitBtnlClick(Sender: TObject);
    begin
    Animatel.FileName := 'cool.avi'; // Указываем файл с клипом
    Animatel.Active := True; // Запускаем клип
    ProgressBarl.Show; // Показываем ProgressBar
    Timeri.Enabled := True; // Включаем таймер
    end;


  • Создайте такой обработчик события onTimer компонента 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, aviFindFolder, aviFindFile, aviFindComputer, 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.





Методы компонента:
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;Возникает при установке значения False в свойство Open. Например, когда компонент демонстрирует несколько видеоклипов подряд
property OnOpen: TNoti-fyEvent; Возникает при установке значения True в свойство Open
property OnStart: TNoti-fyEvent; Возникает в момент начала демонстрации
property OnStop: TNotifyEvent;Возникает в момент прекращения демонстрации



 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь