KEY(n) - mkilgore/QB64pe GitHub Wiki
KEY(n) assigns, enables, disables or suspends event trapping of a keypress by setting the flag ON, STOP or OFF.
- Predefined and user defined KEY event number assignments to use with KEY(n):
'''1 to 10'''.............Reserved '''F1 to F10''' function keys only. '''11, 12, 13 and 14'''...Reserved '''Up, Left, Right and Down''' numeric keypad arrows only '''15 to 29'''............'''user-defined keys''' using value: [[CHR$]](keyflag) + [[CHR$]]([[Keyboard scancodes|scancode]]) '''30 and 31'''...........Reserved '''F11 and F12''' function keys only. |
- Keypresses can be read during INKEY$, INPUT$ or INPUT procedures without losing the input.
- Key event reads will also interrupt SLEEP.
-
KEY(n) specific status modes are:
- ON enables specific keypress events to be monitored.
- STOP suspends specific keypress reads, but remembers them. When re-enabled the key presses will be returned.
- OFF disables specified keypress reads and will not remember the event.
Example 1: How to trap the LEFT direction keys on both the dedicated cursor keypad and the numeric keypad.
ON KEY(n) GOSUB NumericPad ' Trap LEFT key on number pad KEY(n) ON ' enable event trapping DO LOOP UNTIL UCASE$(INKEY$) = "Q" ' Idle loop for demo SYSTEM CursorPad: PRINT "Pressed LEFT key on cursor keypad." RETURN NumericPad: PRINT "Pressed LEFT key on numeric keypad." RETURN '' '' |
Example 2: Trapping the F5 keypress.
'' '' KEY(n) ON ON KEY(n) GOSUB execute PRINT "Press F5 (or ESC) to quit!)" DO LOOP UNTIL INKEY$ = CHR$(27) ' idle loop SYSTEM execute: PRINT "You pressed the F5 key..." SLEEP 1 PRINT "Press any key to continue..." SLEEP '' '' |
- ON KEY(n), KEY n (softkeys)
- _KEYHIT, _KEYDOWN
- Keyboard scancodes
Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page