Excel. Трюки и эффекты
Шрифт:
• aviNone – отсутствие стандартной анимации;
• aviCopyFile – копирование файла;
• aviCopyFiles – копирование файлов;
• aviDeleteFile—удаление файла;
• aviEmptyRecycle – очистка Корзины;
• aviFindComputer – поиск компьютера;
• aviFindFile – поиск файла;
• aviFindFolder – поиск папки;
• aviRecycleFile – перемещение файла в Корзину.
При присвоении свойству CommonAVI значения, отличного от aviNone, свойство FileName автоматически сбрасывается, принимая в качестве значения пустую строку.
Для задания видеоклипа также можно использовать ResHandle типа THandle и ResID типа Integer,
После выбора видеоклипа свойства 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. Приложение для просмотра стандартной анимации
Рассмотрим исходный текст приложения подробно. Для работы программы необходим набор констант, значения которых может принимать свойство 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 и выглядит следующим образом: