Delphi:VK_SPACE,正确的密钥

use*_*539 3 delphi

我有点困惑.在:http: //delphi.about.com/od/objectpascalide/l/blvkc.htm

它说"太空"的正确键是#20.试过,它不会起作用.但是,用#32替换它似乎有效:

procedure TForm14.cxTextEdit5KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,#32, '0'..'9']) then begin
  ShowMessage('Only numbers !');
  Key := #0;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

所以现在我不确定这是否适用于所有Windows版本?

Ond*_*lle 8

是.在所有版本的Windows中VK_SPACE定义为0x20(在C表示法十六进制值20中等于32).您的链接也列出了十六进制值.

编辑

正如David指出的那样,虚拟键代码VK_SPACEOnKeyPress事件处理程序的上下文中是无关紧要的.(使用空格字符的ASCII值定义的事实应该被视为巧合.)

您可以简单地依赖于#32空格字符(也是#$20简单' ')的正确表示法.