Delphi Ctrl+;在OnKeyPress事件中转换的快捷键?
我试图从Delphi Ctrl+;在OnKeyPress事件中转换的快捷键?,delphi,keyboard-shortcuts,keyboard-events,delphi-2007,Delphi,Keyboard Shortcuts,Keyboard Events,Delphi 2007,我试图从TEdit的OnKeyPress事件中检测Ctrl+V,我注意到当按下Ctrl+AnyKey时,Key参数假定一个异常值 示例: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin ShowMessage(IntToStr(Ord(Key))); end; 它产生以下结果: Ctrl+Q 17 Ctrl+W 23 Ctrl+E 5 Ctrl+R 18 Ctrl+A 1 Ctrl+Z 26 C
TEdit
的OnKeyPress
事件中检测Ctrl+V,我注意到当按下Ctrl+AnyKey时,Key
参数假定一个异常值
示例:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage(IntToStr(Ord(Key)));
end;
它产生以下结果:
- Ctrl+Q 17
- Ctrl+W 23
- Ctrl+E 5
- Ctrl+R 18
- Ctrl+A 1
- Ctrl+Z 26
- Ctrl+C3
- Ctrl+V 22
- Ctrl+x24
del
字符(127)
可以找到更多关于历史和标准的信息。这听起来是错误的解决方案。难道你不应该听WM_PASTE吗。然后,程序将与粘贴用户其他方法的用户一起工作。比如上下文菜单。或者Ctrl+Insert。如果您确实需要捕捉Ctrl+KEYPRESS,那么OnKeyPress是错误的方法。所以这个问题看起来很像是在两个不正确的前提下提出的。你得到的是值。@DavidHeffernan:我最初的目标是,如果
剪贴板,将键
参数设置为#0
。AsText
不只包含数字字符,但也许我会问另一个问题。我之所以提出这个问题,是因为我对OnKeyPress
事件中键转换为字符的方式很好奇。您可以学习如何在控件中截取WM\u PASTE
消息的示例。