Эфект анімацыі дасягаецца за кошт таго, што перад поглядам карыстальніка адбываецца хуткая змена відарысаў. Кожны з кадраў анімацыі застаецца на экране вельмі невялікі прамежак часу.
Для замеру інтэрвалаў часу можна выкарыстоўваць кампанент таймер. Кампанент Timer змешчаны на панэлі System і паказаны ў выглядзе . Кампанент Timer, змешчаны на форму, атрымлівае імя — TimerN, дзе N — нумар 1, 2, 3… (прыклад 4.8).
Некаторыя ўласцівасці кампанента Timer прыведзены ў табліцы (прыклад 4.9).
Кампанент мае адзіны апрацоўшчык — OnTimer, у якім апісваюцца дзеянні, якія адбываюцца па заканчэнні інтэрвалу спрацоўвання таймера.
Прыклад 4.10. Стварыць праект, у якім самалёт будзе пралятаць над горадам.
Этапы выканання задання
- Змясціць на форму два кампаненты Image, кампаненты Timer і Button.
- Загрузіць малюнак горада ў кампанент Image1.
- Напісаць апрацоўшчык падзеі OnCreate для формы, і апісаць пачатковае становішча самалёта, паказаўшы каардынаты верхняга левага вугла Image2 за межамі формы. Загрузіць у Image2 малюнак з файла (файл павінен быць размешчаны ў папцы ...\Win32\Debug).
- Змяніць ўласцівасці Caption у кампанента Button1 на «Паляцелi!».
- Устанавіць значэнне False у ўласцівасці таймера Enabled у інспектары аб'ектаў.
- Устанавіць у інспектары аб'ектаў час спрацоўвання таймера роўным 10.
- Напісаць апрацоўшчык падзеі OnClick для кампанента Button1, у якім запусціць таймер.
- У інспектары аб'ектаў устанавіць празрыстасць для кампанента Image2 (Transparent = True).
- Напісаць апрацоўшчык падзеі OnTimer, і мяняць у ім значэнне ўласцівасці Left у кампанента Image2. Калі самалёт вылецеў за мяжу, то вярнуць яго ў пачатковае становішча.
Калі пры працы дадатку ўзнікае мігаценне, то неабходна ўстанавіць значэнне True для ўласцівасцяў формы AlphaBlend і DoubleBuffered. |
Прыклад 4.8. Кампанент таймер на форме:

Кампанент Timer не бачны пры рабоце дадатку, таму месца яго змяшчэння на форме не мае значэння.
Прыклад 4.9. Некаторыя ўласцівасці кампанента таймер.
Уласцівасць
|
Прызначэнне
|
Enabled
|
Значэнне True абазначае, што таймер запушчаны
|
Interval
|
Час у мілісекундах, праз які адбываецца спрацоўванне таймера і выклік апрацоўшчыка OnTimer
|
Прыклад 4.10. Форма на этапе канструявання:

Апрацоўшчык падзеі OnCreate для формы:
procedure TForm1.FormCreate(Sender: TObject); begin
Image2.Picture.LoadFromFile ('plane.bmp');
x := -Image2.Width;
y := 20;
Image2.Left := x;
Image2.Top := y;
end;
|
Апрацоўшчык падзеі OnClick для кампанента Button1:
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := True; end;
|
Апрацоўшчык падзеі OnTimer для кампанента Timer1:
procedure TForm1.Timer1Timer(Sender: TObject); begin x := x + 1; Image2.Left := x; if Image2.Left > Image1.Width + Image2.Width then x := -Image2.Width; end;
|
Дадатак у час работы:

|