ON KEY(n): Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:
{{PageDescription}}
{{PageDescription}}
* Predefined and user defined KEY event number assignments to use with ON KEY(n):
* Predefined and user defined KEY event number assignments to use with ON KEY(n):
{{WhiteStart}}    '''1 to 10'''.............Reserved '''F1 to F10''' function keys only.
{{FixedStart}}    '''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
     '''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]])
     '''15 to 29'''............'''user-defined keys''' using value: [[CHR$]](keyflag) + [[CHR$]]([[Keyboard scancodes|scancode]])
     '''30 and 31'''...........Reserved '''F11 and F12''' function keys only.
     '''30 and 31'''...........Reserved '''F11 and F12''' function keys only.
{{WhiteEnd}}
{{FixedEnd}}
* See the [[KEY n]] page for user defined key or key combination presses and F function softkey assignments.
* See the [[KEY n]] page for user defined key or key combination presses and F function softkey assignments.
* [[GOSUB]] with a {{Parameter|linelabel}} or {{Parameter|linenumber}}  or a [[SUB]] procedure (without the [[CALL]] keyword) can be triggered in '''QB64'''.
* [[GOSUB]] with a {{Parameter|linelabel}} or {{Parameter|linenumber}}  or a [[SUB]] procedure (without the [[CALL]] keyword) can be triggered in '''QB64'''.

Revision as of 02:10, 24 January 2023

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

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



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link