KEYFUNCTION function

Evaluates an integer expression (such as 301) and returns a character string that is the function of the key associated with that integer expression (such as GO).

Note: Does not apply to SpeedScript programming.

Syntax

KEYFUNCTION ( expression )
expression
A constant, field name, variable name, or expression whose value is an integer key code.

Example

This procedure displays a menu and highlights different selections, depending on which key you press. On the first iteration of the REPEAT block, the COLOR statement tells the AVM to color msg[ix] with the same color used to display messages. Because the initial value of ix is 1, msg[ix] is the first menu selection. Therefore, the first menu selection is colored MESSAGES.

r-keyfn.p

DEFINE VARIABLE msg  AS CHARACTER NO-UNDO EXTENT 3.
DEFINE VARIABLE ix   AS INTEGER   NO-UNDO INITIAL 1.
DEFINE VARIABLE newi AS INTEGER   NO-UNDO INITIAL 1.
DEFINE VARIABLE func AS CHARACTER NO-UNDO.

DISPLAY 
  "     Please choose     " SKIP(1)
  " 1  Run order entry    " @ msg[1] ATTR-SPACE SKIP
  " 2  Run receivables    " @ msg[2] ATTR-SPACE SKIP
  " 3  Exit               " @ msg[3] ATTR-SPACE SKIP
  WITH CENTERED FRAME menu NO-LABELS.

REPEAT:
  COLOR DISPLAY MESSAGES msg[ix] WITH FRAME menu.
  READKEY.
  func = KEYFUNCTION(LASTKEY).
  IF func = "CURSOR-DOWN" AND ix < 3 THEN 
    newi = ix + 1.
  ELSE IF func = "CURSOR-UP" AND ix > 1 THEN
    newi = ix - 1.
  ELSE IF func = "GO" OR func = "RETURN" THEN LEAVE.
  IF ix <> newi THEN 
    COLOR DISPLAY NORMAL msg[ix] WITH FRAME menu.
  ix = newi.
END.

See the example in the KEYCODE function reference entry for details on what happens if you press keylabel component.

Notes

See also

KEYCODE function, KEYLABEL function