GetKeyEvent
Get the next raw key event, wait if needed.
Declaration
Source position: keybrdh.inc line 148
  function GetKeyEvent : TKeyEvent;
Description
GetKeyEvent returns the last keyevent if it is available, or waits for one if none is available. A non-blocking version is available in PollKeyEvent .
The returned key is encoded as a TKeyEvent type variable, and is normally the physical key scan code, (the scan code is driver dependent) which can be translated with one of the translation functions TranslateKeyEvent or TranslateKeyEventUniCode . See the types section for a description of how the key is described.
Errors
If no key became available (e.g. when the driver does not support it), 0 is returned.
See also
| Name | Description | 
|---|---|
| PollKeyEvent | Get next key event, but does not wait. | 
| PutKeyEvent | Put a key event in the event queue. | 
| TranslateKeyEvent | Translate raw event to ascii key event | 
| TranslateKeyEventUniCode | Translate raw event to UNICode key event | 
Example
program example1;
{ This program demonstrates the GetKeyEvent function }
uses keyboard;
Var
  K : TKeyEvent;
begin
  InitKeyBoard;
  Writeln('Press keys, press "q" to end.');
  Repeat
    K:=GetKeyEvent;
    K:=TranslateKeyEvent(K);
    Write('Got key event with ');
    Case GetKeyEventFlags(K) of
      kbASCII    : Writeln('ASCII key');
      kbUniCode  : Writeln('Unicode key');
      kbFnKey    : Writeln('Function key');
      kbPhys     : Writeln('Physical key');
      kbReleased : Writeln('Released key event');
    end;
    Writeln('Got key : ',KeyEventToString(K));
  Until (GetKeyEventChar(K)='q');
  DoneKeyBoard;
end.