键盘控制实例

代码
 1 unit Unit1;
 2 
 3 interface
 4 
 5 uses
 6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 7   Dialogs, ExtCtrls, StdCtrls, Buttons;
 8 
 9 type
10   TmainForm1 = class(TForm)
11     charLabel1: TLabel;
12     valueLabel2: TLabel;
13     shiftLabel3: TLabel;
14     closeBitBtn1: TBitBtn;
15     Bevel1: TBevel;
16     procedure FormKeyDown(Sender: TObject; var Key: Word;
17       Shift: TShiftState);
18     procedure FormKeyPress(Sender: TObject; var Key: Char);
19     procedure FormKeyUp(Sender: TObject; var Key: Word;
20       Shift: TShiftState);
21   private
22     { Private declarations }
23   public
24     { Public declarations }
25   end;
26 
27 var
28   mainForm1: TmainForm1;
29 
30 implementation
31 
32 {$R *.dfm}
33 const
34 ctrl_A=1{ascll value for ctrl+A}
35 ctrl_Z=26;{ascll value for ctrl+Z}
36 functionkeys:array[vk_f1..vk_f12]of string[3]=
37 ('f1','f2','f3','f4','f5','f6','f7','f8','f9','f10','f11','f12');
38 procedure TmainForm1.FormKeyDown(Sender: TObject; var Key: Word;
39   Shift: TShiftState);
40 var
41 s:string;
42 begin
43 {show integer key value}
44 valuelabel2.caption:=inttostr(key);
45 {show key shift state}
46 s:='';
47 if ssShift in Shift then
48 s:=s+'Shift+';
49 if ssalt in shift then
50 s:=s+'alt+';
51 if ssctrl in shift then
52 s:=s+'ctrl+';
53 if length(s)>0 then
54 delete(s,length(s),1);
55 shiftlabel3.Caption:=s;
56 if key in[vk_f1..vk_f12]then
57 charlabel1.Caption:=functionkeys[key]
58 else
59 charlabel1.Caption :='';
60 if key=vk_space then
61 key:=0;
62 end;
63 
64 procedure TmainForm1.FormKeyPress(Sender: TObject; var Key: Char);
65 begin
66 if ord(key)in[ctrl_A..ctrl_Z]then
67 charlabel1.Caption :=chr(ord(key)+ord('A')-1)
68 else
69 charlabel1.Caption :=key;
70 valuelabel2.Caption :=inttostr(ord(key));
71 end;
72 
73 procedure TmainForm1.FormKeyUp(Sender: TObject; var Key: Word;
74   Shift: TShiftState);
75 begin
76 charlabel1.Caption :='';
77 valuelabel2.Caption :='';
78 shiftlabel3.Caption :='';
79 end;
80 end.
81 

 

posted @ 2009-12-09 23:45  懒人博客  阅读(126)  评论(0)    收藏  举报