Axiom Справочник языка

Встроенная функция

Функция MOUSEPRESS

Щелчок кнопкой мыши обычно должен вызвать одно действие, а не повторяться всё время, пока кнопка удерживается. Функция MOUSEPRESS извлекает непрочитанное нажатие указанной кнопки: при найденном событии результат равен TRUE, и это событие больше не повторится.

Где доступен опрос

Для опроса нужен графический SCREEN 1..10 или активный CANVAS; отсутствие поверхности вызывает MB3010. Текущее удержание отдельно проверяет MOUSEBUTTON, и его результат не расходует событие.

Синтаксис и аргумент

MOUSEPRESS(<номер кнопки>)

Передайте INTEGER с номером кнопки.

АргументТипОписание
<номер кнопки>INTEGERНомер кнопки мыши: 1 — левая, 2 — правая, 3 — средняя.

Что возвращает функция

Функция возвращает значение типа BOOLEAN.

  • TRUE, если в очереди есть ещё не прочитанное нажатие указанной кнопки. Это нажатие удаляется из очереди.
  • FALSE, если такого нажатия сейчас нет или передан неподдерживаемый номер кнопки.

Для номера вне 1..3 возвращается FALSE; неподходящий номер не вызывает MB3007.

Очередь нажатий мыши

За один вызов удаляется только первое подходящее событие нажатия, поэтому повторный вызов вернёт FALSE, пока пользователь не нажмёт кнопку снова. Повторные нажатия и нажатия других кнопок не теряются и остаются доступными для следующих вызовов MOUSEPRESS.

  • Это именно нажатие кнопки, а не проверка удержания: для текущего состояния используется встроенная функция MOUSEBUTTON.
  • Отпускание, перемещение и колесо не читаются функцией MOUSEPRESS, но доступны обработчикам оператора ON MOUSE.

Диагностика

  • MB2004: в встроенную функцию MOUSEPRESS аргумент не передан.
  • MB2003: в встроенную функцию MOUSEPRESS передан аргумент неподходящего типа.
  • MB3010: встроенная функция MOUSEPRESS вызвана без активного графического режима SCREEN и без активного CANVAS.

Пример одноразового нажатия

IF MOUSEPRESS(1) THEN
    PRINT "LEFT ONCE"
END IF

Строка печатается один раз на нажатие: следующая проверка в том же удержании уже не найдёт события.

Запускаемые примеры

См. также