Delphi 2009 OnKeyDown不像Delphi 2007那样陷阱

Ive*_*aev 0 delphi keyboard delphi-2009 keydown

我有这个代码

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
begin
  if not (Key in [Ord('0')..Ord('9')]) then
    Key := 0;
end;
Run Code Online (Sandbox Code Playgroud)

并且它与Delphi 2007一起工作正常.当我升级到Delphi 2009并且我尝试按任何字母时它被接受并且Key:= 0不会捕获输入?

有人遇到过同样的行为吗?

And*_*den 13

你确定这在Delphi 2007中有效吗?我刚刚尝试了Delphi 2007和2009中的代码.两者的行为相同(没有吃掉键击)如果你只想接受数字,你应该使用OnKeyPress事件并将Key参数设置为#0.