我想在TEdit中显示按下的键的名称。
例如,虽然专注于TEdit并且键入A将显示A
在相同的TEdit中。按下另一个按钮,如space酒吧,将显示SPACE
。
我不知道从哪里开始,我认为THOTKey是一个选项,但我无法输入我想要的空间。
发布于 2019-03-29 14:33:37
使用KeyDown
事件而不是KeyPress
事件。然后,您可以使用以下代码获得按下的键的文本表示:
uses Vcl.Menus;
procedure TForm1.Edit1KeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
TEdit(Sender).Text := ShortCutToText(ShortCut(Key, Shift));
Key := 0;
end;
// Disable default behavior in other events
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Key := #0;
end;
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
Key := 0;
end;
https://stackoverflow.com/questions/-100008997
复制相似问题