[About The Guide]
Return the INKEY() value of the last key extracted from the keyboard buffer
LASTKEY() --> nInkeyCode
LASTKEY() returns an integer value from -39 to 386 for keyboard events
and integer values from 1001 to 1007 for mouse events. This value
identifies either the key extracted from the keyboard buffer or the
mouse event that last occurred. If the keyboard buffer is empty, and no
mouse events are taking place, LASTKEY() returns 0. LASTKEY() returns
values for all ASCII characters, function, Alt+Function, Alt+Letter, and
Ctrl+Letter key combinations.
LASTKEY() is a function that reports the INKEY() value of the last key
fetched from the keyboard buffer by the INKEY() function, or the next
mouse event, or a wait state such as ACCEPT, INPUT, READ, WAIT,
ACHOICE(), DBEDIT(), or MEMOEDIT(). The time LASTKEY() waits is based
on the operating system clock and is not related to the microprocessor
speed. LASTKEY() retains its current value until another key is fetched
from the keyboard buffer.
LASTKEY() has a number of uses which include:
. Determining the key that terminates a READ
. Determining the key that exits the current Get object within a
user-defined function, invoked by a VALID clause
. Identifying an exception key in the user function of
ACHOICE(), DBEDIT(), or MEMOEDIT()
LASTKEY() is also used with UPDATED() to determine if any Get object's
buffer was changed during a READ.
LASTKEY() is related to NEXTKEY() and READKEY(). NEXTKEY() reads the
current key pending in the keyboard buffer without removing it. Use
NEXTKEY() instead of INKEY() when polling for a key.
For a complete list of INKEY() codes and Inkey.ch constants for each
key, refer to the Error Messages and Appendices Guide.
. This example illustrates a typical application of LASTKEY() to
test the key that exits a READ. If the user exits with any key other
than Esc and a GET was changed, the specified database file is
USE Customer NEW
MEMVAR->balance = Customer->Balance
@ 10, 10 SAY "Current Balance" GET MEMVAR->balance
IF (LASTKEY() != K_ESC) .AND. UPDATED()
REPLACE Customer->Balance WITH MEMVAR->balance
Files Library is CLIPPER.LIB, header file is Inkey.ch.
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson