Программа пишет, что выполняется, но ничего не выводит - PascalABC.NET
Формулировка задачи:
Нашёл код в интернете, решил полюбоваться. Данная программа должна выводить изображение сердца, но когда я её запускаю, пишет, что программа выполняется, хотя никакого вывода изображения нет. Может, код с двумя подключенными модулями как-то по особенному запускать надо? Подскажите пожалуйста, в чём проблема.
Решение задачи: «Программа пишет, что выполняется, но ничего не выводит»
textual
Листинг программы
uses graphABC; var theEnd : Boolean := False; procedure KeyPress(Key : Char); begin theEnd := True; end; procedure MouseUp(x,y,mb: integer); begin theEnd := True; end; procedure BlackPoint; begin var dy := random(WindowHeight); var dx := random(WindowWidth); var c := GetPixel(dx, dy); if GetGreen(c) < 128 then SetPixel(dx, dy, clblack) else SetPixel(dx, dy, clblue); end; begin setpencolor(clblue); setpenwidth(6); {1}line(300, 300, 150, 150); {2}line(150, 150, 150, 100); {3}line(150, 100, 180, 80); {4}line(180, 80, 210, 80); {5}line(210, 80, 300, 130); {6}line(300, 130, 390, 80); {7}line(390, 80, 420, 80); {8}line(420, 80, 450, 100); {9}line(450, 100, 450, 150); {0}line(450, 150, 300, 300); floodfill(190, 130, clred); OnKeyPress := KeyPress; OnMouseUp := MouseUp; var dt := System.DateTime.Now; repeat BlackPoint; if (system.datetime.Now-dt).TotalMilliseconds > 100 then begin dt := System.Datetime.Now; Redraw; end; until theEnd; Window.Close; end.
Объяснение кода листинга программы
- Объявлена переменная theEnd типа Boolean, которая инициализируется значением False.
- Создана процедура KeyPress, которая принимает в качестве параметра символ Key. В этой процедуре значение переменной theEnd устанавливается в True.
- Создана процедура MouseUp, которая принимает в качестве параметров координаты x, y и mb. В этой процедуре значение переменной theEnd устанавливается в True.
- Создана процедура BlackPoint, которая выбирает случайные координаты на экране и, если значение зелёного канала цвета пикселя меньше 128, закрашивает этот пиксель чёрным цветом, иначе закрашивает синим.
- Начальные координаты для линий и прямоугольника задаются с помощью функций line и floodfill соответственно. Значение переменной theEnd устанавливается в True.
- Задаются функции обратного вызова для обработчиков нажатия клавиш и отпускания кнопки мыши.
- Задаётся начальное время в миллисекундах с помощью функции System.DateTime.Now.
- В цикле repeat, который выполняется до тех пор, пока не будет выполнено условие, указанное в операторе until, вызывается функция BlackPoint. Если прошло больше 100 миллисекунд с момента последнего обновления экрана, то выполняется функция Redraw, которая обновляет экран. Значение переменной theEnd устанавливается в True.
- Закрывается окно программы с помощью функции Window.Close.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д