§ 17. Анімацыя

17.1. Кампанент Timer

Кампанент таймер — Timer дазваляе задаваць у дадатку інтэрвалы часу. На панэлі кампанентаў System кампанент таймер намаляваны ў выглядзе , імя аб'екта — Timer. Кампанент Timer, змешчаны на форму, атрымлівае імя TimerN, дзе N — нумар 1, 2, 3… (прыклад 17.1).

Таймер з'яўляецца не візуальным кампанентам, які можна размясціць у любым месцы формы. Таймер знаходзіць шматлікія прымяненні: кіраванне мультыплікацыяй, уключэнне захавальніка экрана, заданне часу на адказ у навучальных праграмах. Уласцівасці кампанента прыведзены ў прыкладзе 17.2.

Для таймера даступна адзіная падзея — OnTimer. У апрацоўшчыку гэтай падзеі запісваюцца неабходныя каманды. Падзея надыходзіць па заканчэнні рэальнага часу эквівалентнага значэнню ўласцівасці Interval для таймера. Да таго часу, пакуль таймер не будзе выключаны, гэта падзея будзе наступаць зноў і зноў.

Прыклад 17.3. Стварыць дадатак, які дазваляе ўводзіць бягучы час кожную секунду.

Этапы выканання задання

  1. Змясціць на форму кампаненты Timer, Label, і два кампаненты Button.
  2. Змяніць уласцівасць Caption у кампанента Button1 на «Старт».
  3. Змяніць уласцівасць Caption у кампанента Button2 на «Стоп».
  4. Ачысціць уласцівасць Caption у кампанента Label1.
  5. Змяніць уласцівасць Enabled у кампанента Timer1 на false.
  6. Напісаць апрацоўшчыкі падзей OnClick для кампанентаў Button1 і Button2, якія будуць запускаць і спыняць таймер.
Напісаць апрацоўшчык падзей OnTimer для кампанента Timer, які будзе выводзіць сістэмны час. Для вываду сістэмнага часу можна выкарыстоўваць функцыю TimeToStr(Time()), якая пераўтворыць сістэмны час Time() у радковае ўяўленне.

Прыклад 17.1. Кампанент Timer на форме:

Прыклад 17.2.  Уласцівасці кампанента Timer:

Уласцівасці 

Прызначэнне

Interval

Задае перыяд часу спрацоўвання таймера ў мілісекундах

Enabled

Значэнне true ў гэтай уласцівасці паказвае, што таймер запушчаны

Прыклад 17.3. Форма на этапе праектавання:

Апрацоўшчыкі падзеі OnClick для кампанентаў Button1 і Button2.

void __fastcall TForm1::
Button1Click(TObject *Sender)

{

  Timer1 -> Enabled = true;

}

//---------------------------

void __fastcall TForm1::
Button2Click(TObject *Sender)

{

  Timer1 -> Enabled = false;

} 

Апрацоўшчык падзеі OnTimer.

void __fastcall TForm1::
Timer1Timer(TObject *Sender)

{

  Label1 ->Caption = TimeToStr(Time());

}

Дадатак у час працы:

Для вываду часу можна скарыстацца іншай функцыяй[1]


[1] Са значэннямі параметраў гэтай функцыі можна пазнаёміцца ў дадатку

   FormatDateTime("hh:nn:ss",Time())   

Гэтая функцыя дазваляе змяніць фармат вываду даты/часу. Напрыклад, для таго каб вывесці час так:

трэба выкарыстоўваць функцыю з наступнымі параметрамі:

    FormatDateTime("dddd, dd mmmm yyyy, 
    hh:mm:ss:zz", Now());   

Час спрацоўвання таймера змяніць на 100.