您好,请教KeyDown事件什么时候被触发 ? Key_Down消息呢 ? 谢谢(20分)

  • 主题发起人 主题发起人 wjlsnet
  • 开始时间 开始时间
W

wjlsnet

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=115 then
showmessage('s');
end;
s键为什么不能触发这个message?
还有,KeyDown事件什么时候被触发 ? Key_Down消息呢 ? 谢谢
 
窗口有没有设置KeyPreview = True ?
 
s 应该是 83

if key=83 then
showmessage('s');
 
也不行的,它根本不触发
 
我试了,可以啊。
是不是还有别的问题?

你是不是在CSDN上也问了这个问题的?
 
没有呀,我写着写着需要这个了,可是做不出来
那我再试试看
 
你的窗体上是不是还有别的控件,当前的焦点是窗体吗?
 
最需要的是截获Key_Down消息
哪位指导一下好吗 ? 谢谢
 
haole
截获Key_Down消息
哪位指导一下好吗 ? 谢谢
大家帮我看看好吗 ?
 
呵呵,这个问题好办
首先你要设置Form的KeyPreview = True;
然后在KeyDown事件里你要这样写:
if key=ord('S') then //注意这一行,是大写的S,小写的不行
ShowMessage('s');
这样就可以触发了
其实这样的代码应该写在KeyPress里,在KeyPress里,大写对大写,
小写对小写,不信你可以试试
 
谢谢 ,我还想截获KEY_DOWN消息 :),原来这样也可以做 :)
不过Delphi是怎么实现KEY_DOWN消息的 ? 请指点一下好吗 ? 谢谢
 
多人接受答案了。
 
后退
顶部