Учись программированию на C++ Builder бесплатно!
Содержание[Скрыть]

Компонент Timer задаёт интервалы времени в приложении, по истечении которого запускается запрограммированное событие, например, закрытие окна приложения, синхронизация мультипликации, перевод компьютера в режим ожидания, закрытие сессии с удалённым сервером, индикатор остатка времени при ответах на тесты и многое другое. В этих задачах требуется временной интервал для их запуска, которое прекрасно решает компонент Timer.

Timer – это скрытый компонент, не отражающийся на форме приложения и имеющий небольшой функционал, всего два основных свойства.

Свойства Timer

  • Interval – задаёт интервал времени в миллисекундах, по истечении которого будет выполнено событие OnTimer.
  • Enabled – активирует отчёт времени.

Свойство Interval

Interval позволяет задавать период срабатывания событие таймера, которое зациклено, т.е. повторяется вызов события OnTimer через указанный интервал времени в «Инспектор объектов» или программно. В обработчике OnTimer записываются какие-либо операции.

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//Тут описываются операции
}

При Interval = 0 или Enabled = false таймер отключается и перестаёт работать. Чтобы отсчёт времени запустился нужно указать Enabled в true и установить положительное значение в Interval.

Пример закрытия программы

__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
Timer1->Interval = 4000; //Задаётся интервал в 4 секунды
Timer1->Enabled = true; //При запуске приложения включается таймер
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Close(); //Через 4 секунды после запуска приложения сработает событие и закроет приложение
}

Если после срабатывания события таймера Timer, он больше не нужен, то следует его отключить во избежание дальнейших проблем.

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//Тут описываются операции
Timer1->Interval = 0;
}

Свойство Enabled

Пренебрегая значением Interval = 0, возможно остановить циклическое исполнение OnTimer свойством Enabled, которое в любой момент может выключить отсчёт компонента Timer.

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//Тут описываются операции
Timer1->Enabled = false;
}

В этом случае установленный временной таймер не сбрасывается и остаётся без изменений. Чтобы Timer снова активизировался достаточно указать:

Timer1->Enabled = true;

Примечание

Компонент Timer точно срабатывает по заданному временному интервалу Interval, если значение установлено больше секунды (тысяча миллисекунд). Если это значение будет менее секунды, то в реальности временной интервал будет выполняться гораздо дольше. Это связано с «временными расходами» на вызов различных функций и вычислительных аспектов.

Поделиться