Управление отображением текущего времени в программе. Пример демонстрации компонента TTimer

Управление отображением текущего времени в программе. Компонент TTimer

 

Теоретические сведения

Иногда в приложениях, работающих в графическом интерфейсе Windows, возникает необходимость отображения текущего времени суток (часы:минуты:секунды). Для реализации этой задачи в аппаратуре компьютера предусмотрен доступ к таймеру.

Также с помощью таймера можно организовать параллельное выполнение задач с использованием различных средств.

Программируемый таймер предназначен для получения программно управляемых временных задержек и генерации функций, которые задают время. Программируемый таймер разрешает формировать заданные интервалы времени независимо от быстродействия вычислительной системы. По умолчанию операционная система Windows вызывает прерывание от таймера 18,2 раза в секунду.

Система Delphi представляет для пользователя компонент TTimer, который обеспечивает выполнение прерывания от таймера. С помощью компонента TTimer можно организовать параллельное выполнение в программе.

В данном примере показано как использовать компонент TTimer для вывода на форме текущего времени. Также показано как можно руководить таймером, останавливая и продолжая показ текущего времени.

 

Выполнение

1. Создание проекта как VCL Form Application в Embarcadero RAD Studio — Delphi.

Загрузить Delphi.

Создать проект как VCL Form Application.

 

2. Создание основной формы.

Создать форму, как показано на рисунке 1.

Используя палитру инструментов Tool Palette разместить на форме следующие компоненты:

  • из вкладки Standard компонент типа TLabel. Создается объект (экземпляр класса) с именем Label1;
  • из вкладки Standard два компонента типа TButton. Создается два объекта с именами Button1 и Button2;
  • из вкладки System компонент типа TTimer (рисунок 1). Создается объект с именем Timer1.

01_02_00_016_01_

Рис. 1. Размещение компонента TTimer и других компонент на форме

 

3. Настройка компонент типа TLabel и TButton.

Настроить следующие свойства компонент Label1 и Button1:

  • в компоненте Label1 свойство Caption = ««;
  • в компоненте Button1 свойство Caption = «Go«;
  • в элементе управления Button2 свойство Caption = «Stop«.

Если пользователь сделает клик на кнопке Button1 (начало отсчета), таймер, в котором отображаются часы, будет включен. При клике на кнопке Button2 время будет остановлено.

На рисунке 2 отображен вид формы после настройки компонент.

01_02_00_016_02_

Рис. 2. Форма программы после настройки компонент

 

4. Настройка компонента типа TTimer.

В компоненте TTimer свойство Interval установить в значение 100 (рисунок 3) или в любое другое значение. Значение Interval измеряется в миллисекундах. Interval задает частоту вызова обработчика события, то есть частоту изменения значения часов реального времени.

Также свойство Enabled установить в значение False.

01_02_00_016_03_Рис. 3. Свойство Interval компонента Timer1

 

5. Программирование обработчика события OnTimer.

В обработчик события OnTimer вписывается собственный программный код, который отображает часы реального времени.

Листинг обработчика Timer1Timer() события OnTimer следующий:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := TimeToStr(Time);
end;

В вышеприведенном коде использована функция TimeToStr() для преобразования текущего времени (свойство Time) в строку.

 

6. Программирование событий клика на кнопках Button1 и Button2.

Для того, чтобы время начало отображаться, нужно активировать таймер. Для активации/деактивации таймера в компоненте Timer1 используется свойство Enabled.

Обработчик события клика на кнопке Button1 имеет вид:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled := true;
end;

Чтобы остановить таймер, нужно свойство Enabled компонента Timer1 установить в значение false.

procedure TForm1.Button2Click(Sender: TObject);
begin
  Timer1.Enabled := false;
end;

 

7. Запуск программы на выполнение.

После запуска программы на выполнение окно формы будет иметь вид как изображено на рисунке 4.

01_02_00_016_04_

Рис. 4. Программа в режиме выполнения

Если в программе нужно постоянно отображать текущее время, тогда строку

timer1.Enabled := true;

можно разместить в начале загрузки формы в обработчике события OnActivate.