Керування відображенням поточного часу в програмі. Компонент TTimer

Керування відображенням поточного часу в програмі. Компонент TTimer

 

Теоретичні відомості

В програмах на Delphi можна організувати паралельне виконання задач з використанням різних засобів. Одним з таких засобів є використання програмувального таймера. Програмувальний таймер призначений для отримання програмно керованих часових затримок та генерації функцій, що задають час. Програмувальний таймер дозволяє формувати задані інтервали часу незалежно від швидкодії обчислювальної системи. За замовчуванням операційна система 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 елементу управління Timer встановити в значення false.

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

 

7. Запуск програми на виконання.

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

01_02_00_016_04_

Рис. 4. Програма в режимі виконання

Якщо в програмі потрібно постійно відображати поточний час, тоді рядок

timer1.Enabled := true;

можна розмістити на початку завантаження форми в обробнику події OnActivate.