From QB64 Wiki
Revision as of 03:15, 16 October 2017 by imported>SMcNeill (-)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.


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


  • 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$(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.


Example 1: 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

Example 2: 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

Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page