Практическая работа.
Тема. Создание простейшей анимации в Lazarus.
Создаем приложение «Бабочка».
Цель:
- научиться создавать простейшую анимацию;
-
познакомиться с компонентом Timer и научиться использовать
его в своих программах.
Теоретическая часть.
Мы
попытаемся создать приложение, имитирующее полет бабочки. Для этого нам
понадобятся компоненты Timer(таймер), Panel и Image(Изображение). Компонент Panel находится на вкладке Standard. Компонент Image находится на вкладке Additional и служит для
размещения на форме изображений. Остановимся подробнее на компоненте Timer. Он находится на вкладке System. Компонент Timer
может выполнять некоторый код через регулярные промежутки времени.
Размещённый на форме, он остается невидимым во время работы приложения.
Основным
свойством таймера является свойство Interval. Оно
определяет (в миллисекундах), как часто наш компонент будет генерировать
событие Timer. Например, если мы установим его значение в 1000, то
событие Timer будет генерироваться раз с секунду, а если установим в 500 - то 2
раза в секунду. Если же это свойство установить в 0, то событие вообще
генерироваться не будет.
Свойство
Interval компонента Timer можно задавать во время разработки или во время
выполнения программы.
Практическая часть.
Создайте
новый проект.
Измените
некоторые свойства формы:
Свойство
|
Значение
|
Name
|
FrmAnim
|
Caption
|
Анимация
|
Разместите
на форме компонент Panel и четыре компонента Button (см. рис. ниже). Зададим свойства для этих компонентов:
Компонент
|
Свойство
|
Значение
|
Panel1
|
Color
|
clSkyBlue
|
Button1
|
Name
|
BtnPlay1
|
Caption
|
>
|
Button2
|
Name
|
BtnPlay2
|
Caption
|
>>
|
Button3
|
Name
|
BtnBack
|
Caption
|
<
|
Button4
|
Name
|
BtnStop
|
Caption
|
Stop
|
Теперь
разместите на панели три компонента Image(изображение) и
один компонент Timer так, как это показано на рисунке:
Для
всех трёх компонентов Image установите свойство Stretch
на True, чтобы размер изображения подгонялся
под размер компонента. Для компонентов Image1 и Image2 свойство Visible установите на False, т.е. сделаем их невидимыми во время выполнения программы.
Теперь
выделите компонент Timer и установите его свойство Interval равным 0, т.е. выключим таймер.
Теперь
выделите компонент Image1 и найдите его свойство Picture. Нажмите кнопку с тремя точками и в открывшемся окне «Диалог загрузки
изображения» нажмите кнопку «Загрузить». Перейдите в папку с изображениями
бабочек и выберите изображение бабочки с расправленными крыльями. То же самое
сделайте для компонента Image2, только выберите
изображение бабочки со сложенными крыльями. Смотрите рисунок:
Дважды
щёлкните по значку таймера и напишите код:
begin
If flag=0 Then
begin
Image3.Picture:=Image1.Picture;
flag:=1;
end
Else
begin
Image3.Picture:=Image2.Picture;
flag:=0;
end;
Image3.Top:=Image3.Top-5;
Image3.Left:=Image3.Left+10;
end;
Теперь дважды щёлкните по кнопке (Play) и напишите код:
Timer1.Interval:=200;
В
разделе описания переменных добавьте переменную flag целого
типа.
Сохраните
проект и запустите приложение. Нажмите кнопку (Play).
Посмотрите работу программы и проанализируйте написанный вами код.
Задание. Самостоятельно создайте процедуры для
остальных кнопок нашего приложения с учетом следующих требований:
а)
кнопка в
два раза ускоряет анимацию;
б)
кнопка включает
обратное воспроизведение;
в)
кнопка останавливает
анимацию.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.