Графический таймер работает через раз - 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.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • t1 типа Timer
    • time_HUD типа TextABC
  2. Определена процедура OnTimer1
  3. В основной части программы выполняются следующие действия:
    • Устанавливается цвет шрифта на красный (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)

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы