Графический таймер работает через раз - PascalABC.NET
Формулировка задачи:
Один раз запустил - вроде работает, второй раз запустил - цифры нагромождаются один на одном.
Что я пишу не так?
Решение задачи: «Графический таймер работает через раз»
textual
Листинг программы
program CyberForum;
uses ABCobjects, GraphABC, Timers;
var t1 : Timer;
var time_HUD : TextABC;
procedure OnTimer1;
begin
time_HUD.Number += 1;
end;
begin
SetFontColor(clRed);
SetFontSize(20);
SetFontName('Arial');
SetWindowCaption('CyberForum');
SetWindowSize(640,480);
SetWindowIsFixedSize(true);
time_HUD := new TextABC(550, 0, 20, '0', RGB(255, 0, 0));
//Timer
t1 := new Timer(1000, OnTimer1);
t1.Start;
end.
Объяснение кода листинга программы
- Объявлены переменные:
- t1 типа Timer
- time_HUD типа TextABC
- Определена процедура OnTimer1
- В основной части программы выполняются следующие действия:
- Устанавливается цвет шрифта на красный (clRed)
- Устанавливается размер шрифта на 20 (20)
- Устанавливается имя шрифта на Arial (Arial)
- Устанавливается заголовок окна на CyberForum (CyberForum)
- Устанавливается размер окна на 640x480 (640, 480)
- Устанавливается свойство окна IsFixedSize в true (true)
- Создается объект time_HUD типа TextABC с координатами (550, 0) и размером 20, с текстом '0' и цветом (255, 0, 0)
- Создается объект t1 типа Timer с периодом 1000 мс и методом обратного вызова OnTimer1
- Запускается объект t1 типа Timer (t1.Start)