如何在程序中知道按下了某一键?(如A)(50分)

  • 主题发起人 主题发起人 ma-liang
  • 开始时间 开始时间
formpreview=true;
然后再这样:
procedure TForm1.FormKeyPress(Sender: TObject;
var Key: Char);
begin
if key='A' then
caption:='ad';
end;

如果要判断uparrow,ctrl+...就只好用keydown了.
更高级的应用有registerhotkey,hook...
 
别动,是我先看到的 :(
在form的Onkeydown事件中可得到.
首先,form1.keyview:=true;
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
showmessage('你按了'+inttostr(key)+'键');
end;
:)
 
if getkeystate(ord('A')) < 0 then
showmessage('A 键正按下‘);
 
用hook也可以:-)
 
OnkeyPress 是按下按键再松开后激活事件
Onkeydown 则是按下按键立即激活事件
可以根据情况选择
 
把 Form1.KeyPreview 设置为 True ;
判断 Shift 键
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
IF ssShift in Shift then
edit1.text := 'shift'//判断功能键
else
edit1.text := '' ;
if key = 'a' then
edit1.text := 'a';
//判断非功能键
end;
如果判断其他的
type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
 
keydown就可以了啊!
 
可以结束此问题了!
 
接受答案了.
 
后退
顶部