C++ Builder - вопросы программирования


         

Листинг 4 1



Листинг 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; } Editl-XText = OpenDialogl->
FileName; // отобразить имя файла RadioButtonl->
Checked = true; // режим просмотра — непрерывно Buttonl->
Enabled = true; // кнопка Пуск доступна Button2->
Enabled = false; // кнопка Предыдущий кадр недоступна Button3->
Enabled = false; // кнопка Следующий кадр недоступна RadioButtonl->
Enabled = true; RadioButton2->
Enabled = true; } } // щелчок на кнопке Пуск/Стоп void__fastcall TForml::ButtonlClick(TObject *Sender) { if (Animatel->
Active) { // анимация отображается, щелчок на кнопке Стоп Animatel->
Active = false; Buttonl->
Caption = "Пуск"; RadioButton2->
Enabled = true; } else // щелчок на кнопке Пуск ( // активизировать отображение анимации Animatel->
StartFrame = 1; // с первого кадра Animatel->
StopFrame = Animatel->
FrameCount; // по последний кадр Animatel->
Active = true; Buttonl->
Caption = "Стоп"; RadioButton2->
Enabled = false; } } // выбор режима просмотра всей анимации void __fastcall TForml::RadioButtonlClick(TObject *Sender) { Buttonl->
Enabled = true; // кнопка Пуск/Стоп доступна // сделать недоступными кнопки режима просмотра по кадрам Button2->
Enabled = false; Button3->
Enabled = false; Animatel->
Active = false; } // выбор режима просмотра по кадрам void __fastcall TForml::RadioButton2Click(TObject *Sender) { Buttonl->
Enabled = false; // кнопка Пуск/Стоп недоступна Button2->
Enabled = true; // кнопка Следующий кадр доступна Button3->
Enabled = false; // кнопка Предыдущий кадр недоступна // отобразить первый кадр Animatel->
StartFrame =1; Animatel->
StopFrame = 1; Animatel->
Active = true; CFrame =1; // запомним номер отображаемого кадра } // щелчок на кнопке Следующий кадр void__fastcall TForml::Button2Click(TObject *Sender) { CFrame++; // отобразить кадр Animatel->
StartFrame = CFrame; Animatel->
StopFrame = CFrame; Animatel->
Active = true; if (CFrame >
1) Button3->
Enabled = true; if (CFrame == Animatel->
FrameCount) // отобразили последний кадр Button2->
Enabled = false; // кнопка Следующий кадр недоступна } // щелчок на кнопке Предыдущий кадр void__fastcall TForml::Button3Click(TObject *Sender) { if (CFrame == Animatel->
FrameCount) // последний кадр Button2->
Enabled = true; CFrame—; // отобразить кадр Animatel->
StartFrame = CFrame; Animatel->
StopFrame = CFrame; Animatel->
Active = true; if (CFrame == 1) Button3->
Enabled = false; // кнопка Следующий кадр недоступна }
 











Содержание  Назад  Вперед