资源描述:
《free pascal keyboard单元过程函数详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、索引:DoneKeyboardFunctionKeyNameGetKeyboardDriverGetKeyEventGetKeyEventCharGetKeyEventCodeGetKeyEvntFlagsGetKeyEventShiftStateGetKeyEventUniCodeInitKeyBoardIsFunctionKeyKeyEventToStringPollKeyEventPollShiftStateEventPutKeyEventSetKeyboardDriverShiftStateToStringTranslateKeyEventTranslateKeyEventUniCo
2、de这个单元实现独立于系统的键盘接入层,它可以用来轮询键盘状态,并等待某些事件。等待键盘事件可以通过GetKeyEvent函数来实现,它会返回一个依赖驱动程序的键盘事件。这个事件可以由translatekeyevent函数转换成可解释事件。这个函数的结果可用于其他事件检查函数。一个自定义的键盘驱动程序(keyboarddriver)可由SetKeyboardDriver函数安装。当前键盘驱动程序可以用GetKeyBoardDriver检索。使用这个单元,一开始要调用InitKeyboard,最后要调用DoneKeyBoard。(后面的程序都是这样。)注:经测试,下文的功能键指F1~F12及方
3、向键和Home、End、Insert、PageUp、PageDown、Delete。下文说的shift应该是指shift、ctrl、alt。检测shift状态时返回结果是这三个键中任意多个被按下或都未按下。常量:以下常量定义了一些错误常量,可能由键盘函数返回:errKbdBase=1010;errKbdInitError=errKbdBase+0;errKbdNotImplemented=errKbdBase+1;以下常量表示指定的键盘按键。第一个常量指定了功能键:constkbdF1=$FF01;kbdF2=$FF02;kbdF3=$FF03;kbdF4=$FF04;kbdF5=$FF05
4、;kbdF6=$FF06;kbdF7=$FF07;kbdF8=$FF08;kbdF9=$FF09;kbdF10=$FF0A;kbdF11=$FF0B;kbdF12=$FF0C;kbdF13=$FF0D;kbdF14=$FF0E;kbdF15=$FF0F;kbdF16=$FF10;kbdF17=$FF11;kbdF18=$FF12;kbdF19=$FF13;kbdF20=$FF14;常量$15到$1F为未来的功能键预留。以下常量指定光标移动键:kbdHome=$FF20;kbdUp=$FF21;kbdPgUp=$FF22;kbdLeft=$FF23;kbdMiddle=$FF24;kbdRig
5、ht=$FF25;kbdEnd=$FF26;kbdDown=$FF27;kbdPgDn=$FF28;kbdInsert=$FF29;kbdDelete=$FF2A;常量$2B到$2F为未来的键盘上的键预留。以下标志也被定义:kbASCII=$00;kbUniCode=$01;kbFnKey=$02;kbPhys=$03;kbReleased=$04;他们可以用来检查键盘事件包含什么样的数据。以下shift状态的标志可以用来决定一个键的shift状态(即按一个键时alt、shift、ctrl是否按下):kbLeftShift=1;kbRightShift=2;kbShift=kbLeftShi
6、ftorkbRightShift;kbCtrl=4;kbAlt=8;以下常量字符串用于按键名字函数FunctionKeyName和KeyEventToString:SShift:Array[1..3]ofstring[5]=('SHIFT','CTRL','ALT');LeftRight:Array[1..2]ofstring[5]=('LEFT','RIGHT');UnicodeChar:String='Unicodecharacter';SScanCode:String='Keywithscancode';SUnknownFunctionKey:String='Unknownfuncti
7、onkey:';SAnd:String='AND';SKeyPad:Array[0..($FF2F-kbdHome)]ofstring[6]=('Home','Up','PgUp','Left','Middle','Right','End','Down','PgDn','Insert','Delete','','','','','');他们可以被改成本地化的键名当需要的时候。类型:TKeyEvent类型是键盘