如何在OnKeyPress事件中翻译Ctrl + Key快捷键?

Fab*_*zio 3 delphi keyboard-shortcuts delphi-2007 keyboard-events

我试图检测Ctrl+ VTEditOnKeyPress事件,我已经注意到,Key当按下参数假定一个不寻常的值Ctrl+ AnyKey.

例:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessage(IntToStr(Ord(Key)));
end;
Run Code Online (Sandbox Code Playgroud)

它产生以下结果:

  • Ctrl+ Q17
  • Ctrl+ W23
  • Ctrl+ E5
  • Ctrl+ R18
  • ...
  • Ctrl+ A1
  • Ctrl+ Z26
  • Ctrl+ C3
  • Ctrl+ V22
  • Ctrl+ X24

我不明白如何翻译密钥,这些代码是什么意思?

它似乎与ASCII表无关:

在此输入图像描述

谁能对此有所了解?

LU *_* RD 5

我不明白如何翻译密钥,这些代码是什么意思?

使用Ctrl+ AnyKey组合获得的值是Ascii控制代码.它们源于需要从键盘输入非打印(控制)字符.控制字符的(典型)值低于32加上del字符(127).

在此输入图像描述

有关历史和标准的更多信息可以在这里这里找到.