Встроенная функция
Функция 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
Строка печатается один раз на нажатие: следующая проверка в том же удержании уже не найдёт события.