ON KEY(n) - QB64Official/qb64 GitHub Wiki
The ON KEY(n) statement defines a line number or label to go to (or a SUB to run) when a specified key is pressed.
Syntax
Description
- Predefined and user defined KEY event number assignments to use with ON 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)
- 30 and 31...........Reserved F11 and F12 function keys only.
- See the KEY n page for user defined key or key combination presses and F function softkey assignments.
- GOSUB with a linelabel or linenumber or a SUB procedure (without the CALL keyword) can be triggered in QB64.
Example(s)
Using ON KEY with GOSUB to execute code.
KEY(1) ON
ON KEY(1) GOSUB trap
PRINT "Press F1 to quit!"
DO:LOOP 'never ending loop
trap:
PRINT "You pressed F1 like I told you to :)"
END
RETURN
Setting multiple ON KEY statements to send different values to a SUB procedure.
FOR n = 1 TO 10
KEY n, STR$(n) ' assigns soft key as a numerical string
ON KEY(n) Funct n 'designate SUB procedure and parameter value passed
KEY(n) ON ' turns each key event monitor on
NEXT
KEY ON 'displays F1 to F10 soft key assignments at bottom of screen
DO
LOOP UNTIL INKEY$ = CHR$(27)
END
SUB Funct (num%)
CLS' clears the screen and refreshes bottom soft key list
PRINT "You pressed F"; LTRIM$(STR$(num%))
END SUB