Графический таймер работает через раз - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. program CyberForum;
  2. uses ABCobjects, GraphABC, Timers;
  3. var t1 : Timer;
  4. var time_HUD : TextABC;
  5. var time_second : integer;
  6. procedure OnTimer1;
  7. begin
  8. time_HUD := new TextABC(550, 0, 20, inttostr(time_second), RGB(255, 0, 0));
  9. time_second += 1;
  10. sleep(1000);
  11. time_HUD.Destroy;
  12. end;
  13. begin
  14. SetFontColor(clRed);
  15. SetFontSize(20);
  16. SetFontName('Arial');
  17. SetWindowCaption('CyberForum');
  18. SetWindowSize(640,480);
  19. SetWindowIsFixedSize(true);
  20. time_second := 0;
  21. //Timer
  22. t1 := new Timer(1000, OnTimer1);
  23. t1.Start;
  24. end.
Один раз запустил - вроде работает, второй раз запустил - цифры нагромождаются один на одном. Что я пишу не так?

Решение задачи: «Графический таймер работает через раз»

textual
Листинг программы
  1. program CyberForum;
  2. uses ABCobjects, GraphABC, Timers;
  3. var t1 : Timer;
  4. var time_HUD : TextABC;
  5.  
  6. procedure OnTimer1;
  7. begin
  8.   time_HUD.Number += 1;
  9. end;
  10.  
  11. begin
  12.   SetFontColor(clRed);
  13.   SetFontSize(20);
  14.   SetFontName('Arial');
  15.   SetWindowCaption('CyberForum');
  16.   SetWindowSize(640,480);
  17.   SetWindowIsFixedSize(true);
  18.   time_HUD := new TextABC(550, 0, 20, '0', RGB(255, 0, 0));
  19.   //Timer
  20.   t1 := new Timer(1000, OnTimer1);
  21.   t1.Start;
  22. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы