Чтение онлайн

на главную

Жанры

Шрифт:

• aviNone – отсутствие стандартной анимации;

• aviCopyFile – копирование файла;

• aviCopyFiles – копирование файлов;

• aviDeleteFile—удаление файла;

• aviEmptyRecycle – очистка Корзины;

• aviFindComputer – поиск компьютера;

• aviFindFile – поиск файла;

• aviFindFolder – поиск папки;

• aviRecycleFile – перемещение файла в Корзину.

При присвоении свойству CommonAVI значения, отличного от aviNone, свойство FileName автоматически сбрасывается, принимая в качестве значения пустую строку.

Для задания видеоклипа также можно использовать ResHandle типа THandle и ResID типа Integer,

которые составляют альтернативу свойствам CommonAVI и FileName. Значение ResHandle задает ссылку на модуль, в котором содержится изображение в виде ресурса, а значение свойства ResID в этом модуле указывает номер ресурса.

После выбора видеоклипа свойства FrameCount, FrameHeight и FrameWidth типа Integer определяют следующие параметры клипа: количество, высоту и ширину кадров (в пикселах) соответственно. Эти свойства являются свойствами времени выполнения, следовательно, доступны только для чтения.

По умолчанию размеры компонента Animate автоматически подстраиваются под размеры кадров видеоклипа, это определяет значение True свойства AutoSize. Если этому свойству присвоить значение False, то возможно отсечение части кадра изображения, если его размеры превышают размеры компонента Animate.

Воспроизведение видеоклипа начинается при установке свойству Active значения True. Начальный и конечный кадры задают диапазон воспроизведения и определяются соответственно значениями свойств StartFrame и StopFrame типа Small Int. По умолчанию StartFrame указывает на первый кадр анимации, и его значение равно 1.

Свойство Repetitions типа Integer определяет количество повторений воспроизведения видеоклипа. По умолчанию его значение равно нулю. В этом случае видеоклип проигрывается до тех пор, пока процесс воспроизведения не будет остановлен.

Для запуска и остановки воспроизведения клипов можно использовать методы Play, Stop и Reset. Процедура Play (FromFrame: Word, ToFrame: Word, Count: Integer) проигрывает видеоклип, начиная с кадра, заданного параметром FromFrame, и заканчивая кадром, заданным параметром ToFrame. Параметр Count определяет количество повторений. Таким образом, эта процедура позволяет одновременно управлять StartFrame, StopFrame и Repetitions, задавая для них требуемые при воспроизведении значения, а также устанавливает свойству Active значение True.

Свойство Open типа Boolean доступно при выполнении программы и позволяет определить, готов ли компонент Animate к воспроизведению. Если выбор и загрузка видеоклипа проходят успешно, то свойству Open автоматически устанавливается значение True, компонент можно открыть и проиграть анимацию. При неуспешном завершении загрузки видеоклипа это свойство получает значение False. При необходимости программист может сам устанавливать свойству Open значение False, тем самым отключая компонент Animate.

Процедура Stop прерывает воспроизведение видеоклипа и устанавливает свойству Active значение False. Процедура Reset, кроме того, дополнительно сбрасывает свойства StartFrame и StopFrame, устанавливая значения по умолчанию.

В качестве примера, наглядно отражающего работу компонента Animate, рассмотрим приложение для просмотра стандартной анимации операционной системы Windows.

Стандартный видеоклип можно просмотреть, нажав кнопку Просмотр, предварительно выбрав анимацию в группе независимых переключателей. Клип воспроизводится непрерывное количество раз с первого до последнего

кадра. Чтобы прервать воспроизведение, необходимо нажать кнопку Стоп. Окно приложения приведено на рис. 5.2.

Рис. 5.2. Приложение для просмотра стандартной анимации

Рассмотрим исходный текст приложения подробно. Для работы программы необходим набор констант, значения которых может принимать свойство CommonAVI. Поэтому в начале программы объявляем константный массив Typeof AVI типа ТCommonAVI, который и будет содержать необходимые значения:

...

const TypeofAVI: array[0..8] of TCommonAVI =

(aviNone, aviCopyFile, aviCopyFiles,

aviDeleteFile, aviEmptyRecycle,

aviFindComputer, aviFindFile,

aviFindFolder, aviRecycleFile);

При создании главного окна приложения устанавливаем положение переключателя в группе выбора анимации:

...

procedure TFormViewAnim.FormCreate(Sender: TObject);

begin

//Стандартная анимация «Копирование файла»

RadioGroupSelectAnimEffects.ItemIndex := 1;

end;

Создаем обработчик выбора группы независимых переключателей. При выборе анимации первым делом устанавливается доступность кнопок управления. Далее задается вид воспроизводимого ролика (например, Копирование файлов). В блоке if происходит проверка индекса выбранной анимации, и если она не выбрана (индекс равен 0), то блокируется кнопка Просмотр, так как в этом случае просмотр стандартной анимации невозможен (листинг 5.5).

...

Листинг 5.5. Обработчик выбора анимационных роликов

//Выбор стандартной анимации

procedure TFormViewAnim.RadioGroupSelectAnimEffectsClick(Sender:

TObject);

begin

//Устанавливаем доступность кнопок управления

bnStopView.Enabled := False;

bnStartView.Enabled := True;

//Устанавливаем значение свойства CommonAVI

StandartAnimate.CommonAVI :=

TypeofAVI[RadioGroupSelectAnimEffects.ItemIndex];

//Если анимация не выбрана, делаем недоступной

//кнопку старта показа

if RadioGroupSelectAnimEffects.ItemIndex = 0

then bnStartView.Enabled := False

else bnStopView.Enabled := True;

end;

Значения индексов (RadioGroupSelectAnimEf f ects. Itemlndex) переключателей соответствуют порядковым номерам в массиве Typeof AVI, который содержит возможные значения свойства CommonAVI.

При нажатии кнопки начала показа происходит вызов метода Play компонента Animate и устанавливается доступность кнопок управления показом:

...

//Старт показа

procedure TFormViewAnim.bnStartViewClick(Sender: TObject);

begin

//Начинаем показ выбранной анимации

StandartAnimate.Play(1, StandartAnimate.FrameCount, 0);

bnStartView.Enabled := False;

bnStopView.Enabled := True;

end;

Обработчик кнопки Стоп основан на вызове метода Stop компонента Animate и выглядит следующим образом:

Поделиться:
Популярные книги

Я все еще барон

Дрейк Сириус
4. Дорогой барон!
Фантастика:
боевая фантастика
5.00
рейтинг книги
Я все еще барон

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Сокрушитель

Поселягин Владимир Геннадьевич
3. Уникум
Фантастика:
боевая фантастика
5.60
рейтинг книги
Сокрушитель

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2

Здравствуй, Мир!

Француз Михаил
Фантастика:
рпг
попаданцы
6.25
рейтинг книги
Здравствуй, Мир!

Крепость над бездной

Лисина Александра
4. Гибрид
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Крепость над бездной

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Неофит

Листратов Валерий
3. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неофит

Скажи миру – «нет!»

Верещагин Олег Николаевич
1. Путь домой
Фантастика:
фэнтези
героическая фантастика
попаданцы
7.61
рейтинг книги
Скажи миру – «нет!»

Точка Бифуркации X

Смит Дейлор
10. ТБ
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации X

Отмороженный 12.0

Гарцевич Евгений Александрович
12. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
фантастика: прочее
5.00
рейтинг книги
Отмороженный 12.0

Воронцов. Перезагрузка. Книга 4

Тарасов Ник
4. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 4

Я еще князь. Книга XX

Дрейк Сириус
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще князь. Книга XX

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10