Вот например в таком варианте все работает. 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.