Встроенная функция
Функция MOUSEX
Положение указателя программа узнаёт в тот момент, который выбрала сама. Функция MOUSEX возвращает текущую горизонтальную координату указателя мыши, и её вызывают в собственном цикле, когда нужно сверить позицию с рисунком или интерфейсом.
Что измеряется на каждой поверхности
На экране SCREEN координата X измеряется в пикселях клиентской области. На холсте CANVAS результат соответствует мировому положению указателя после преобразования через VIEWPORT и CAMERA. Для чтения нужен графический SCREEN 1..10 или активный CANVAS; отсутствие поверхности сообщает MB3010.
На экране VIEW, WINDOW и PMAP не пересчитывают координату мыши, а на холсте учитываются текущие область и камера. Функция читает текущее положение без извлечения события перемещения; для процедуры по каждому событию используется ON MOUSE.
Синтаксис и аргументы
MOUSEX()
Поддерживается единственная форма MOUSEX(). Аргументов нет, но скобки остаются частью вызова.
Что возвращает функция
Координата возвращается как значение типа LONG.
- Если активен
SCREENи среда выполнения знает положение указателя, возвращается текущая X-координата в клиентской области активного окна. - Если активен
CANVASи среда выполнения знает положение указателя, возвращается мировая X-координата точки под мышью. - Если положение указателя недоступно, возвращается
-1.
Функция не создаёт очередь мышиных событий и не хранит историю перемещений.
Начало координат и отрицательные значения
В SCREEN начало клиентской области находится слева сверху; X увеличивается вправо. В CANVAS функция возвращает камера X + физический X - левая граница области.
В CANVAS мировая координата считается как положение камеры плюс смещение указателя внутри прямоугольника VIEWPORT. Точка вне холста или вне активной области VIEWPORT не образует мировую координату: функция возвращает -1. Отрицательное мировое значение при этом может быть допустимой координатой сцены и само по себе не доказывает отсутствие указателя.
Для вертикальной координаты используется встроенная функция MOUSEY, а для кнопок — встроенная функция MOUSEBUTTON.
Диагностика
MB2004: в встроенную функциюMOUSEXпереданы аргументы.MB3010: встроенная функцияMOUSEXвызвана без активного графического режимаSCREENи без активногоCANVAS.
Пример чтения координат
SCREEN 1
PRINT MOUSEX()
PRINT MOUSEY()
SLEEPПрограмма печатает две координаты указателя в пикселях окна. Если положение ещё неизвестно, выводятся -1 и -1. Затем программа ждёт клавишу.