Difference between revisions of "ON KEY(n)"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>SMcNeill
m (-)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
The '''ON KEY(n)''' statement defines a line number or label to go to when a specified key is pressed. QB64 can reference a [[SUB]].
+
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.
  
  
 
{{PageSyntax}}
 
{{PageSyntax}}
:: ON KEY(n) {{{KW|GOSUB}} {''linelabel''|''linenumber''}|{{KW|SUB}}procedure}
+
: [[ON KEY(n)]] [[GOSUB]] {{Parameter|linelabel}}|{{Parameter|linenumber}}
 +
: [[ON KEY(n)]] [[SUB]]procedure
  
  
 +
{{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.
 
{{WhiteStart}}    '''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}}
 
{{WhiteEnd}}
 
* 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 ''linelabel'' or ''linenumber'' or a [[SUB]] procedure can be used in '''QB64'''. Don't use [[CALL]]!
+
* [[GOSUB]] with a {{Parameter|linelabel}} or {{Parameter|linenumber}} or a [[SUB]] procedure (without the [[CALL]] keyword) can be triggered in '''QB64'''.
 
 
  
  
 +
{{PageExamples}}
 
''Example 1:'' Using ON KEY with [[GOSUB]] to execute code.
 
''Example 1:'' Using ON KEY with [[GOSUB]] to execute code.
 
{{CodeStart}} '' ''
 
{{CodeStart}} '' ''
Line 41: Line 43:
 
{{Cl|KEY n|KEY}} ON  'displays F1 to F10 soft key assignments at bottom of screen
 
{{Cl|KEY n|KEY}} ON  'displays F1 to F10 soft key assignments at bottom of screen
  
DO
+
{{Cl|DO}}
 
 
 
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} = {{Cl|CHR$}}(27)
 
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} = {{Cl|CHR$}}(27)
 
{{Cl|END}}
 
{{Cl|END}}
Line 53: Line 54:
  
  
''See also:''
+
{{PageSeeAlso}}
 
* [[KEY(n)]], [[KEY n]] {{text|(soft key)}}
 
* [[KEY(n)]], [[KEY n]] {{text|(soft key)}}
 
* [[ON...GOSUB]], [[Scancodes]]
 
* [[ON...GOSUB]], [[Scancodes]]

Latest revision as of 03:15, 16 October 2017

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:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page