Порядок выполнения
Постановка задачи
Пояснения к работе
Компонент Animate расположен на вкладке Win32 и позволяет воспроизвести только простую, не сопровождаемую звуком анимацию, кадры которой находятся в AVI-файле. Свойства компонента приведены в таблице:
FileName | Имя AVI-файла |
StartFrame | Номер кадра, с которого начинается отображение анимации |
StopFrame | Номер кадра, на котором заканчивается отображение анимации |
Activate | Признак активации процесса отображения |
Color | Цвет фона, на котором воспроизводится анимация |
Transparent | Режим использования «прозрачного» цвета при отображении анимации |
Repetitions | Количество повторов отображения |
Разработать приложение позволяющее выбирать и воспроизводить AVI-файлы в двух режимах: непрерывном и покадровом.
1. Загрузить Delphi, сохранить проект.
2. Расположить на форме компонент Animate (Win32).
3. Для свойства FileName выбрать имя Avi-файла.
4. В процедуру TForm1.FormCreate ввести код:
animate1.Play(0,animate1.FrameCount ,1);
5. Проверить работу приложения.
6. Самостоятельно изменить программу для того, чтобы количество повторов было 3. Проверить.
7. Привести форму в соответствие с образцом, для этого добавить компоненты и изменить им свойство Caption:
· Label и Edit;
· GroupBox, RadioButton
· OpenDialogs;
· командные кнопки.
8. Объявить глобальную переменную
CFrame: integer; // номер кадра,
9. Создать и объявить процедуру OpenAvi
procedure TForm1.OpenAVI;
begin
Button1.Enabled := False;
Button2.Enabled := False; Button3.Enabled := False;
RadioButton1.Enabled := False; RadioButton2.Enabled := False;
try
Animate1.FileName := Edit1.Text;
except
on Exception do
begin
MessageDlg('Ошибка формата AVI файла.'+
#13+'(Анимация не должна сопровождаться звуком.)',
mtError,[mbOk],0);
exit;
end; end;
Button1.Enabled := True;
RadioButton1.Enabled := True; RadioButton2.Enabled := True;
end;
10. Для кнопки Выбрать (Button4) ввести код:
OpenDialog1.Title := 'Выбрать AVI файл';
OpenDialog1.InitialDir :='';
if OpenDialog1.Execute Then Begin
Edit1.Text := OpenDialog1.FileName;
OpenAVI; End;
11. Для кнопки Пуск ввести код:
if Animate1.Active = False // в данный момент анимация нет then begin
Animate1.StartFrame:=1; // вывод с первого кадра
Animate1.StopFrame:=Animate1.FrameCount; //по последний кадр
Animate1.Active:=True;
Button1.caption:='Стоп';
RadioButton2.Enabled:=False;
end
else // анимация отображается
begin
Animate1.Active:=False; // остановить отображение
Button1.caption:='Пуск';
RadioButton2.Enabled:=True;
end;
12. Для переключателя Непрерывно ввести код:
Button1.Enabled:=True; // доступна кнопка Пуск
// сделать недоступными кнопки просмотра по кадрам
Form1.Button3.Enabled:=False;
Form1.Button2.Enabled:=False;
13. Для переключателя По кадрам ввести код:
Button2.Enabled:=True; // кнопка Следующий кадр доступна
Button3.Enabled:=False; //кнопка Предыдущий кадр недоступна
// сделать недоступной кнопку Пуск - вывод всей анимации
Button1.Enabled:=False;
Animate1.StartFrame:=1;
Animate1.StartFrame:=1;
CFrame:=1;
14. Для кнопки К следующему кадру ввести код:
if CFrame < Animate1.FrameCount Then Begin
CFrame := CFrame + 1;
// вывести кадр
Animate1.StartFrame := CFrame;
Animate1.StopFrame := CFrame;
Animate1.Active := True;
if CFrame = Animate1.FrameCount // текущий кадр - последний
then Button2.Enabled:=False;
End;
if CFrame > 1 then Button3.Enabled := True;
15. Для кнопки К предыдущему кадру ввести код:
if CFrame > 1 then
begin
CFrame := CFrame - 1;
// вывести кадр
Animate1.StartFrame := CFrame;
Animate1.StopFrame := CFrame;
Animate1.Active := True;
if CFrame = 1 // текущий кадр - первый
then Form1.Button3.Enabled := False;
end;
if CFrame < Animate1.FrameCount then Button2.Enabled := True;
16. Проверить работу приложения.
17. Добавить на форму пункт меню Справка.
18. Присоединить к проекту форму для выдачи Справки, для этого:
1. выбрать в меню File / New/Other;
2. выбрать вкладку Forms, на ней выбрать About box.
19. Привести форму в соответствие с образцом:
20. Самостоятельно доработать приложение для вызова окна справки (пункт Справка) и скрытие окна (кнопка Ок)
21. Результат показать преподавателю.