Skip to content

ON KEY(n)

Samuel Gomes edited this page Nov 8, 2022 · 1 revision

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

ON KEY(n) GOSUB linelabel|linenumber ON KEY(n) SUBprocedure

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 

See Also

Clone this wiki locally