![](/img/trans.png)
[英]DoubleBuffered property being added in the dfm in Delphi 2009 does not exist in Delphi 2007
[英]Delphi 2009 OnKeyDown does not trap as Delphi 2007 does
我有这个代码
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
begin
if not (Key in [Ord('0')..Ord('9')]) then
Key := 0;
end;
并且它在Delphi 2007中可以正常工作。当我升级到Delphi 2009并尝试按任何字母时,它会被接受,并且键:= 0不会捕获输入?
有人遇到过相同的行为吗?
您确定这在Delphi 2007中有效吗? 我只是在Delphi 2007和2009中尝试过该代码。两者的行为相同(不吃任何按键)。如果只想接受数字,则应使用OnKeyPress事件并将Key参数设置为#0。
OnKeyDown给您一个scancode 。 OnKeyPress给您角色 。 我记得每个版本的Delphi都采用这种方式。
发送Key:=0;
在KeyDown
事件上使用:
Key:=HiWord(GetKeyState(0));
//do something
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.