Иллюстрированный самоучитель по C++ Builder

Компонент Animate

Программа "Просмотр анимации" обеспечивает два режима просмотра: непрерывный и по кадрам. Кнопка Button1 используется как для инициализации процесса воспроизведения анимации, так и для его приостановки. Процесс непрерывного воспроизведения анимации инициирует процедура обработки события onclick на кнопке Пуск, которая присваивает значение true свойству Active. Эта же процедура заменяет текст на кнопке Button1 с "Пуск" на "Стоп".

Режим воспроизведения анимации выбирается при помощи переключателей RadioButton1 и RadioButton2. Процедуры обработки события Onclick на этих переключателях изменением значения свойства Enabled блокируют или, наоборот, делают доступными кнопки управления: активизации воспроизведения анимации (Button1), перехода к следующему (Button2) и предыдущему (Buttons) кадру. Во время непрерывного воспроизведения анимации процедура обработки события onckick на кнопке Стоп (Buttoni) присваивает значение false свойству Active и тем самым останавливает процесс воспроизведения анимации.

Листинг 4.1. Использование компонента Animate.

// обработка события OnCreate
void__fastcall TForml::FormCreate(TObject *Sender)
{
TSearchRec sr; // содержит информацию
//о файле, найденном функцией FindFirst
// найдем AVI-файл в текущем каталоге
if (FindFirst("*.avi",faAnyFile, sr) == 0)
 {
Editl › Text = sr.Name;
/* если анимация содержит звук, то при
выполнении следующего оператора произойдет
ошибка, т. к. компонент Animate обеспечивает
воспроизведение только простой,
не сопровождаемой звуком анимации */
try
{
Animatel › FileName = sr.Name;
}
catch (Exception &e)
 {
return;
}
RadioButtonl › Enabled = true;
RadioButton2 › Enabled = true;
Buttonl › Enabled = true; } }
// щелчок на кнопке Выбрать
void __fastcall TForml::Button4Click(TObject *Sender)
{
OpenDialogl › InitialDir = "";
 // открыть каталог, из которого
// запущена программа
OpenDialogl › FileName = "*.avi";
// вывести список AVI-файлов
if (OpenDialogl › Execute()) {
// пользователь выбрал файл и нажал кнопку Открыть
// Компонент Animate может отображать только простую,
// не сопровождаемую звуком анимацию. Поэтому
// при выполнении следующей инструкции возможна ошибка
try
{
Animatel › FileName = OpenDialogl › FileName;
}
catch (Exception &e)
 {
Editl-XText = "";
// сделаем недоступными кнопки управления
RadioButtonl › Enabled = false;
RadioButton2 › Enabled = false;
Buttonl › Enabled = false;
Button2 › Enabled = false;
Button3 › Enabled = false;
// сообщение об ошибке AnsiString msg =
"Ошибка открытия файла " +
OpenDialogl › FileName +
"ХпВозможно анимация сопровождается звуком.";
ShowMessage(msg); return;
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.