QB64.com

QB64 is a modern extended BASIC programming language that retains QBasic/QuickBASIC 4.5 compatibility and compiles native binaries for Windows, Linux, and macOS.

KEY(n) assigns, enables, disables or suspends event trapping of a keypress by setting the flag ON, STOP or OFF.

Syntax

KEY(number) {ON OFF STOP}

Description


     **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$](CHR$)(keyflag)  + [CHR$](CHR$)([Keyboard scancodes](Keyboard-scancodes))
     **30 and 31**...........Reserved **F11 and F12** function keys only.

Example(s)

How to trap the LEFT direction keys on both the dedicated cursor keypad and the numeric keypad.


KEY 15, CHR$(128) + CHR$(75) ' Assign trap for LEFT arrow key on the cursor keypad
ON KEY(15) GOSUB CursorPad     
KEY(15) ON ' enable event trapping                   

ON KEY(12) GOSUB NumericPad ' Trap LEFT key on number pad
KEY(12) 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 

Trapping the F5 keypress.


KEY(5) ON
ON KEY(5) 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 

See Also