OnKeyDown/Up:
设置Form的KeyPriew=True;
然后在FormKeyDown种添加代码:if ssshift in shift then
showmessage('Shift Down');
if ssctrl in shift then
showmessage('Ctrl Down');
if ssalt in shift then
showmessage('Alt Down');
if Key=97 then
showmessage('A Down');
......
其他的类似,自己可以弄懂的吧?
至于GetKeyboardState() API我也忘记了:)
设置Form的KeyPriew=True;
然后在FormKeyDown种添加代码:if ssshift in shift then
showmessage('Shift Down');
if ssctrl in shift then
showmessage('Ctrl Down');
if ssalt in shift then
showmessage('Alt Down');
if Key=97 then
showmessage('A Down');
......
其他的类似,自己可以弄懂的吧?
至于GetKeyboardState() API我也忘记了:)
解决方案 »
- 麦克风测试
- 过程中能不能使用窗体上的对象?
- 请教各位大虾,如何用DELPHI生成一个指定大小的文件,然后用多线程的方式写文件,就象网际快车一样?在线等待!
- 谁有Delphi收邮件的源码
- 请教一个问题,关于lookup字段的!很不正常,老对应不到另外一个表的数据
- 哪有directx for delphi7下载??
- delphi 编程的几个基本的问题
- 怎样不要DBEdit自动修改!
- 如果我用MS自带的MediaPlay播放.Wav文件,需要传入一个为字符类型的表示文件名称的参数,如果我把声音文件已经编译成资源文件了,该怎么调用!?
- 请问如何开发一个关于格斗游戏的快捷键。
- Kingron(戒网中……),请进!!!!!
- 用delphi实现从com1口读数,请给出例子,有分加!
其他的不要我多说了吧。
注意设置Form的KeyPriew:=True哦!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
b:TKeyBoardState;
i:integer;
str:string;
begin
GetKeyBoardState(b);
Memo1.Clear;
for i:=low(b) to high(b) do
begin
str:=str+format('%x ',[b[i]]);
if (i+1) mod 16=0 then
begin
Memo1.Lines.Add(str);
str:='';
end;
end;
end;
高位是1,表示KeyDown,0==KeyUp,低位表示键的切换的状态,用于Caps Lock之类的键。
帮助,看帮助吧。