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

How are Ctrl + Key shortcuts translated in the OnKeyPress event?

我试图从 TEditOnKeyPress 事件中检测 Ctrl+V 并且我我注意到当按下 Ctrl+AnyKey.

时,Key 参数采用一个不寻常的值

示例:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessage(IntToStr(Ord(Key)));
end;

它产生以下结果:

我不明白按键是如何翻译的,这些代码是什么意思?

好像和ASCII table没有关系:

有人能解释一下吗?

I don't understand how keys are translated, what does these codes mean?

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

可以找到更多关于背后的历史和标准的信息here and here