ON KEY (n) - mkilgore/QB64pe 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

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|scancode]])
     '''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.

Examples

Example 1: Using ON KEY with GOSUB to execute code.

trap:
PRINT "You pressed F1 like I told you to :)"
END
RETURN '' ''

Example 2: Setting multiple ON KEY statements to send different values to a SUB procedure.

FOR...NEXT n = 1 TO 10
  KEY n n, STR$(n)  '   assigns soft key as a numerical string 
  ON KEY(n)(n) Funct n  'designate SUB procedure and parameter value passed
  KEY(n)(n) ON '         turns each key event monitor on
NEXT
KEY n 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


Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
⚠️ **GitHub.com Fallback** ⚠️