При нажатии мышкой ** внутреннею область квадрата происходит ошибка.Из-за чего она...

0 голосов
40 просмотров

При нажатии мышкой на внутреннею область квадрата происходит ошибка.
Из-за чего она возникает:"Program8.pas(6) : Ошибка времени выполнения: Поток не выполняется; его нельзя приостановить."?

Как можно переделать программу?
Программа(PascalABC.NET):

uses graphabc;
var
a: real;

procedure md(x, y, z: integer);
begin
if (x > 100) and (x < 200) and (y > 100) and (y < 200) then readln(a);
end;

begin
onmousedown := md;
rectangle(100, 100, 200, 200);
end.


Информатика (3.7k баллов) | 40 просмотров
0

У меня ошибки нет - рисуется квадрат.

0

Нее... если нужна графика на ABC.NET - гораздо проще OpenGL подключить=)))

0

квадрат то рисует без проблем

0

но при нажатии проблема

0

и как я понял, это косяк самого паскаля. В более свежей версии, вроде как исправлено. По этому обновите паскаль.

0

а подключать openGL да еще и в паскале для такого, это как стрелять по воробьям из базуки.

0

у меня и так последняя версия 1457.

0

вопрос, а зачем нужно считывание? может нужно что-то другое?

Дан 1 ответ
0 голосов
Правильный ответ

Вот например в таком варианте все работает. readln подразумевает ожидание потому и ошибка. И вообще в чем задача то?

uses graphabc;
var
    a: real;

procedure md(x, y, z: integer);
begin
    if (x > 100) and (x < 200) and (y > 100) and (y < 200) then
        Println(x, y, z);
end;

begin
    onmousedown := md;
    rectangle(100, 100, 200, 200);
end.

(55.0k баллов)