问:为什么我的KeyUp、KeyDown和KeyMove不能响应(50分)

  • 主题发起人 主题发起人 dear
  • 开始时间 开始时间
D

dear

Unregistered / Unconfirmed
GUEST, unregistred user!
我所做的动作仅仅是:双击OBJECT INSPECTER中的OnKeyDown,OnKeyUp,OnKeyMove,然后
在里面加东西,但我按KEY则一点反映都没有,也就是执行不到OnKeyDown,OnKeyUp,OnKeyMove
函数里面
 
TForm的OnKeyDown,OnKeyUp需将KeyPreview设为true
OnKeyMove??
 
你的程序中一定有其它可以截取OnKeyDown等消息的控件,如BUTTON,以前我也碰到过
 
在 Form 上如果有其他 WinControl 的派生元件,则 Form 本身是得不到输入焦点的。
因为往往在初始执行中,这些元件之一将得到输入焦点,就算KeyPreview为True也解决不了。
因此键盘的事件也就传递不到Form 的KeyDown ,KeyPress,KeyUp 中。
不过可 Override Tform 的
function WantChildKey(Child: TControl; var Message: TMessage): Boolean; virtual;
这样根据得到 Message 的消息就可以处理了,而且还知道正在激活的元件呢!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
697
import
I
I
回复
0
查看
620
import
I
后退
顶部