⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard.inc

📁 著名的游戏开发库Allegro4.2.0 for DELPHI
💻 INC
📖 第 1 页 / 共 2 页
字号:
{*         ______   ___    ___
 *        /\  _  \ /\_ \  /\_ \
 *        \ \ \L\ \\//\ \ \//\ \      __     __   _ __   ___
 *         \ \  __ \ \ \ \  \ \ \   /'__`\ /'_ `\/\`'__\/ __`\
 *          \ \ \/\ \ \_\ \_ \_\ \_/\  __//\ \L\ \ \ \//\ \L\ \
 *           \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
 *            \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
 *                                           /\____/
 *                                           \_/__/
 *
 *      Keyboard routines.
 *
 *      By Shawn Hargreaves.
 *
 *      See readme.txt for copyright information.
 *}
{$IFDEF ALLEGRO_INTERFACE}
type
  P_KEYBOARD_DRIVER = ^KEYBOARD_DRIVER;
  KEYBOARD_DRIVER = record
    id                     : sint32;
    name                   : PChar;
    desc                   : PChar;
    ascii_name             : PChar;
    autorepeat             : sint32;
    init                   : function: sint32; cdecl;
    exit                   : procedure; cdecl;
    poll                   : procedure; cdecl;
    set_leds               : procedure(leds: sint32); cdecl;
    set_rate               : procedure(delay, rate: sint32); cdecl;
    wait_for_input         : procedure; cdecl;
    stop_waiting_for_input : procedure; cdecl;
    scancode_to_ascii      : function(scancode: sint32): sint32; cdecl;
    scancode_to_name       : function(scancode: sint32): PChar; cdecl;
  end;

  key_callback_ptr = function(key: sint32): sint32; cdecl;
  key_ucallback_ptr = function(key: sint32; var scancode: sint32): sint32; cdecl;
  key_lowlevel_ptr = procedure(scancode: sint32); cdecl;
  keypressed_ptr = function: sint32; cdecl;
  readkey_ptr = function: sint32; cdecl;

var
  the_keyboard_driver        : ^P_KEYBOARD_DRIVER;
  _keyboard_driver_list      : P_DRIVER_INFO;

  install_keyboard           : function: sint32; cdecl;
  remove_keyboard            : procedure; cdecl;

  poll_keyboard              : function: sint32; cdecl;
  keyboard_needs_poll        : function: sint32; cdecl;

  keyboard_callback          : ^key_callback_ptr;
  keyboard_ucallback         : ^key_ucallback_ptr;
  keyboard_lowlevel_callback : ^key_lowlevel_ptr;

  install_keyboard_hooks     : procedure(keypressed: keypressed_ptr; readkey: readkey_ptr); cdecl;

  key                        : p_booleans;
  key_shifts                 : p_sint32;

  three_finger_flag          : p_sint32;
  key_led_flag               : p_sint32;

  keypressed                 : function: Boolean; cdecl;
  readkey                    : function: sint32; cdecl;
  ureadkey                   : function(var scancode: sint32): sint32; cdecl;
  simulate_keypress          : procedure(keycode: sint32); cdecl;
  simulate_ukeypress         : procedure(keycode, scancode: sint32); cdecl;
  clear_keybuf               : procedure; cdecl;
  set_leds                   : procedure(leds: sint32); cdecl;
  set_keyboard_rate          : procedure(delay, repeats: sint32); cdecl;
  scancode_to_ascii          : function(scancode: sint32): sint32; cdecl;
  scancode_to_name           : function(scancode: sint32): PChar; cdecl;

{* The KEY_ macros are no longer #defined directly to avoid conflicting with
 * linux (which has its own KEY_ constants).  "__allegro_"-prefixed constants
 * are used by the Allegro-Linux keyboard driver, but everyone else should
 * continue to use the KEY_ constants.
 *}
const
   __allegro_KB_SHIFT_FLAG    = $0001;
   __allegro_KB_CTRL_FLAG     = $0002;
   __allegro_KB_ALT_FLAG      = $0004;
   __allegro_KB_LWIN_FLAG     = $0008;
   __allegro_KB_RWIN_FLAG     = $0010;
   __allegro_KB_MENU_FLAG     = $0020;
   __allegro_KB_COMMAND_FLAG  = $0040;
   __allegro_KB_SCROLOCK_FLAG = $0100;
   __allegro_KB_NUMLOCK_FLAG  = $0200;
   __allegro_KB_CAPSLOCK_FLAG = $0400;
   __allegro_KB_INALTSEQ_FLAG = $0800;
   __allegro_KB_ACCENT1_FLAG  = $1000;
   __allegro_KB_ACCENT2_FLAG  = $2000;
   __allegro_KB_ACCENT3_FLAG  = $4000;
   __allegro_KB_ACCENT4_FLAG  = $8000;

   __allegro_KEY_A            = 1;
   __allegro_KEY_B            = 2;
   __allegro_KEY_C            = 3;
   __allegro_KEY_D            = 4;
   __allegro_KEY_E            = 5;
   __allegro_KEY_F            = 6;
   __allegro_KEY_G            = 7;
   __allegro_KEY_H            = 8;
   __allegro_KEY_I            = 9;
   __allegro_KEY_J            = 10;
   __allegro_KEY_K            = 11;
   __allegro_KEY_L            = 12;
   __allegro_KEY_M            = 13;
   __allegro_KEY_N            = 14;
   __allegro_KEY_O            = 15;
   __allegro_KEY_P            = 16;
   __allegro_KEY_Q            = 17;
   __allegro_KEY_R            = 18;
   __allegro_KEY_S            = 19;
   __allegro_KEY_T            = 20;
   __allegro_KEY_U            = 21;
   __allegro_KEY_V            = 22;
   __allegro_KEY_W            = 23;
   __allegro_KEY_X            = 24;
   __allegro_KEY_Y            = 25;
   __allegro_KEY_Z            = 26;
   __allegro_KEY_0            = 27;
   __allegro_KEY_1            = 28;
   __allegro_KEY_2            = 29;
   __allegro_KEY_3            = 30;
   __allegro_KEY_4            = 31;
   __allegro_KEY_5            = 32;
   __allegro_KEY_6            = 33;
   __allegro_KEY_7            = 34;
   __allegro_KEY_8            = 35;
   __allegro_KEY_9            = 36;
   __allegro_KEY_0_PAD        = 37;
   __allegro_KEY_1_PAD        = 38;
   __allegro_KEY_2_PAD        = 39;
   __allegro_KEY_3_PAD        = 40;
   __allegro_KEY_4_PAD        = 41;
   __allegro_KEY_5_PAD        = 42;
   __allegro_KEY_6_PAD        = 43;
   __allegro_KEY_7_PAD        = 44;
   __allegro_KEY_8_PAD        = 45;
   __allegro_KEY_9_PAD        = 46;
   __allegro_KEY_F1           = 47;
   __allegro_KEY_F2           = 48;
   __allegro_KEY_F3           = 49;
   __allegro_KEY_F4           = 50;
   __allegro_KEY_F5           = 51;
   __allegro_KEY_F6           = 52;
   __allegro_KEY_F7           = 53;
   __allegro_KEY_F8           = 54;
   __allegro_KEY_F9           = 55;
   __allegro_KEY_F10          = 56;
   __allegro_KEY_F11          = 57;
   __allegro_KEY_F12          = 58;
   __allegro_KEY_ESC          = 59;
   __allegro_KEY_TILDE        = 60;
   __allegro_KEY_MINUS        = 61;
   __allegro_KEY_EQUALS       = 62;
   __allegro_KEY_BACKSPACE    = 63;
   __allegro_KEY_TAB          = 64;
   __allegro_KEY_OPENBRACE    = 65;
   __allegro_KEY_CLOSEBRACE   = 66;
   __allegro_KEY_ENTER        = 67;
   __allegro_KEY_COLON        = 68;
   __allegro_KEY_QUOTE        = 69;
   __allegro_KEY_BACKSLASH    = 70;
   __allegro_KEY_BACKSLASH2   = 71;
   __allegro_KEY_COMMA        = 72;
   __allegro_KEY_STOP         = 73;
   __allegro_KEY_SLASH        = 74;
   __allegro_KEY_SPACE        = 75;
   __allegro_KEY_INSERT       = 76;
   __allegro_KEY_DEL          = 77;
   __allegro_KEY_HOME         = 78;
   __allegro_KEY_END          = 79;
   __allegro_KEY_PGUP         = 80;
   __allegro_KEY_PGDN         = 81;
   __allegro_KEY_LEFT         = 82;
   __allegro_KEY_RIGHT        = 83;
   __allegro_KEY_UP           = 84;
   __allegro_KEY_DOWN         = 85;
   __allegro_KEY_SLASH_PAD    = 86;
   __allegro_KEY_ASTERISK     = 87;
   __allegro_KEY_MINUS_PAD    = 88;
   __allegro_KEY_PLUS_PAD     = 89;
   __allegro_KEY_DEL_PAD      = 90;
   __allegro_KEY_ENTER_PAD    = 91;
   __allegro_KEY_PRTSCR       = 92;
   __allegro_KEY_PAUSE        = 93;
   __allegro_KEY_ABNT_C1      = 94;
   __allegro_KEY_YEN          = 95;
   __allegro_KEY_KANA         = 96;
   __allegro_KEY_CONVERT      = 97;
   __allegro_KEY_NOCONVERT    = 98;
   __allegro_KEY_AT           = 99;
   __allegro_KEY_CIRCUMFLEX   = 100;
   __allegro_KEY_COLON2       = 101;
   __allegro_KEY_KANJI        = 102;
   __allegro_KEY_EQUALS_PAD   = 103;  // MacOS X
   __allegro_KEY_BACKQUOTE    = 104;  // MacOS X
   __allegro_KEY_SEMICOLON    = 105;  // MacOS X
   __allegro_KEY_COMMAND      = 106;  // MacOS X
   __allegro_KEY_UNKNOWN1     = 107;
   __allegro_KEY_UNKNOWN2     = 108;
   __allegro_KEY_UNKNOWN3     = 109;
   __allegro_KEY_UNKNOWN4     = 110;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -