Класс TAnimate
В заключение — несколько слов для тех, кто хочет применить в своих программах анимированные (движущиеся) картинки. Самый простой путь для этого — быстрая смена нескольких последовательных битовых карт. Но, во-первых, их еще нужно нарисовать; во-вторых, если у вас достаточно большие картинки или недостаточно мощный компьютер, обязательно будет заметно мерцание, задержки и другие проблемы с выводом на экран. С появлением очередной версии библиотеки элементов управления COMCTL32 гораздо проще применить готовый компонент TAnimate.
Этот компонент предназначен для воспроизведения на форме файлов формата AVI (audio-video interleaved; появился впервые с выходом пакета Microsoft Video for Windows).
Альтернативными источниками таких файлов могут послужить:
- файл (с расширением avi). Его имя нужно задать в свойстве:
property FileName: TFileName;
- ресурс Windows. Он может быть задан одним из трех свойств:
property ResHandle: THandle;
property ResID: Integer;
property ResName: string;
Наконец, если вы не запаслись своим AVI-файлом, то можете воспользоваться готовым, имеющимся в Windows и иллюстрирующим один из происходящих в системе процессов. Для этого из списка свойства CommonAVi нужно выбрать один из вариантов (рис. 10.4).
Рис. 10.4. Так выглядит ролик "перенос файлов"
Все эти свойства при своей установке обнуляют прочие альтернативные варианты. Запуск ролика начинается при установке свойства Active в значение True; при этом показываются кадры, начиная с StartFrame и до StopFrame.
Число повторений этой последовательности кадров задается свойством Repetitions; если вам нужен бесконечный цикл, установите это свойство в 0.
Что особенно удобно, компонент TAnimate снимает проблемы синхронизации показа ролика с другими процессами в системе и вашем приложении.
Если свойство Timers равно значению False, показ ролика происходит в отдельном программном потоке и никак не влияет на остальное; если оно равно значению True, ролик синхронизируется по внутреннему таймеру. Вы можете привязать к показу ролика, например, проигрывание звука.