Анимированное изображение – компонент TAnimate

Рассмотрение графических компонентов окажется неполным, если мы не уделим внимание компоненту, способному демонстрировать полноценную анимацию. В Windows основным анимационным форматом считается аудио-видеоклип (Audio Video Interleaved, AVI). Файл в формате AVI представляет собой серию обычных растровых картинок-кадров, отображаемых поочередно. Специально для демонстрации клипов AVI разработан класс TAnimate. В отличие от рассмотренных в этой главе классов, он не имеет ничего общего с TGraphicControl и берет начало от TWinControl.

Выбор клипа осуществляется несколькими способами. Первый и самый простой – использовать ресурсы динамически подключаемой библиотеки Shell32.dll. Этот файл входит в состав Windows и содержит 8 клипов. Для подключения клипа свойству CommonAVI необходимо присвоить значение, отличное от aviNone:

 

propertyCommonAVI: TCommonAVI;

typeTCommonAVI = (aviNone, aviFindFolder, aviFindFile, aviFindComputer,

aviCopyFiles, aviCopyFile, aviRecycleFile, aviEmptyRecycle, aviDeleteFile);

 

Второй способ заключается в выборе отдельного файла с расширением .avi при помощи свойства:

 

propertyFileName: TFileName;

 

Третий способ подключения клипа связан с использованием отдельного модуля-ресурса, содержащего анимационную картинку. Для этого в процессе выполнения приложения передайте в дескриптор ResHandle указатель на ресурс:

 

propertyResHandle: THandle;

typeTHandle = Integer;

После чего воспользуйтесь одним из свойств:

propertyResID: Integer;

propertyResName: string;

 

В ResID указывается уникальный идентификатор анимации. Если же анимационная картинка имеет собственное имя, то присвойте имя свойству ResName. Справочную информацию о текущем клипе (такую как размеры кадра по вертикали и горизонтали и общее количество кадров) соответственно предоставляют свойства:

 

propertyFrameHeight: Integer;

propertyFrameWidth: Integer;

propertyFrameCount: Integer;

 

За автоматическую установку размеров элемента управления отвечает свойство:

 

propertyAutoSize: Boolean;

 

Готовность клипа к воспроизведению можно проверить по состоянию свойства:

propertyOpen: Boolean;

 

В случае готовности к проигрыванию свойство принимает значение true и элемент управления TAnimate приступает к отображению первого кадра клипа. Перевод свойства в false выгружает клип из памяти. Для запуска анимации достаточно присвоить значение true свойству:

 

propertyActive: Boolean;

 

При желании ограничить диапазон отображаемых кадров установите стартовый и конечный кадры (конечно, в пределах FrameCount):

 

propertyStartFrame: SmallInt;

propertyStopFrame: SmallInt;

 

Количество повторов клипа устанавливается свойством Repetitions. Для организации бесконечного проигрывания в цикле присвойте свойству значение 0.

 

propertyRepetitions: Integer;

 

Для синхронизации показа клипа с внутренним таймером Windows воспользуйтесь свойством:

 

propertyTimers: Boolean;

 

Если клип не содержит звука, то рекомендую оставлять свойство Timers с установками по умолчанию (false), т. к. в этом случае для клипа создается отдельный поток, практически не влияющий на производительность системы. Методы класса TAnimate представлены в табл. 10.5.

 

 

Таблица 10.5. Методы класса TAnimate

Метод Описание
functionCanAutoSize(varNewWidth, NewHeight: Integer): Boolean;   Отвечает за установку размеров элемента управления в соответствии с размерами кадров клипа. Вызывается автоматически при установке свойстваAutoSize в true.
procedurePlay(FromFrame, ToFrame: Word; Count: Integer); Проигрывает клип Count раз, начиная с кадра FromFrame до ToFrame.
procedureStop; Останавливает проигрывание клипа по аналогии с установкой в false свойства Active.
procedureReset; Очищает значения, заданные в свойствах StartFrame и StopFrame, и позиционирует клип на первом кадре. Последовательно генерирует события OnClose() и OnOpen().
procedureSeek(Frame: SmallInt); Отображает кадр с порядковым номером Frame.

 

 

События, генерируемые элементом управления TAnimate, представлены в табл. 10.6.

 

Таблица 10.6. События класса TAnimate

Событие Описание
propertyOnOpen: TNotifyEvent;; Возникает сразу после открытия клипа (Open:= true).
propertyOnStart: TNotifyEvent; Возникает в момент воспроизведения клипа (Active:= true или вызов метода Play).
propertyOnStop: TNotifyEvent; Возникает после прекращения воспроизведения клипа.
propertyOnClose: TNotifyEvent; Возникает при закрытии клипа (Open:= false).







Дата добавления: 2016-03-15; просмотров: 764;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.