Есть такое предложение, добавить функции:
MOUSEDOWN(num)-нажата кнопка мыши
MOUSEUP(num)-отпущена кнопка мыши
MOUSECLICK(num)-клик мышкой
num - номер клавиши 1,2,3.... т.е. левая, правая.....
Аналогично функциям клавиш ISKEYDOWN()
Для чего это надо? Ну скажем вот для чего, если экран(карта) работы статичный и вы заранее знаете координаты событий, которые вы ожидаете, то всё нормально. Но вот если динамичный и вы не можете предсказать в какой именно точке произойдёт событие, а вам нужно быстро среагировать на него, то тут эти функции будут полезны.
Пример:
DEFINE($Xs1)
DEFINE($Ys1)
DEFINE($Xs2)
DEFINE($Ys2)
SUB(Property_Mup)
WHILE(mouseup(1)=1) //Ловим отпускание кнопки мыши
$Xs2 = $_xmouse //Записываем координат Х нижнего правого угла
$Ys2 = $_ymouse //Записываем координат Y нижнего правого угла
END_CYC
END_SUB
if ( (iskeydown(#space)=1) & (mousedown(1)=1) )
$Xs1 = $_xmouse //Записываем координат Х верхнего левого угла
$Ys1 = $_ymouse //Записываем координат Y верхнего левого угла
Property_Mup() // Переходим для получения второй координаты
end_if
//Ну и можно потом хотя бы так
GETSCREEN ($Xs1, $Ys1, $Xs2, $Ys2)
Нажали на пробел, нажали на кнопку мыши, отпустили пробел, протянули нужную область экрана и отпустили кнопку мыши. И имеем выбранную прямоугольную область экрана, над которой можем работать.
Думаю этим функция найдутся и другие применения.