如何识别 KeyPress 事件中的虚拟键码?
How to recognize virtual key codes in KeyPress event?
我正在尝试实现类似于记事本在用户按下 F5 键时插入日期和时间的功能。在活动中
procedure TFormMain.Memo1KeyPress(Sender: TObject; var Key: Char);
代码
if Key=Chr(VK_F5) then
begin
Memo1.Lines.Add(FormatDateTime('h:nn',now));
end;
没有效果。同样的方法,
if Key=Chr(VK_ESCAPE) then
//do something
做某事。
当用户按下 F5 时,我需要做什么才能让应用程序识别?
来自帮助表单 TMemo KeyPress 事件:
Keys that do not correspond to an ASCII Char value (SHIFT or F1, for
example) do not generate an OnKeyPress event.
F5 是这些键之一。请尝试使用 OnKeyDown 事件。
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
Memo1.Lines.Add('Escape')
else if Key = VK_F5 then
Memo1.Lines.Add('F5');
end;
我正在尝试实现类似于记事本在用户按下 F5 键时插入日期和时间的功能。在活动中
procedure TFormMain.Memo1KeyPress(Sender: TObject; var Key: Char);
代码
if Key=Chr(VK_F5) then
begin
Memo1.Lines.Add(FormatDateTime('h:nn',now));
end;
没有效果。同样的方法,
if Key=Chr(VK_ESCAPE) then
//do something
做某事。
当用户按下 F5 时,我需要做什么才能让应用程序识别?
来自帮助表单 TMemo KeyPress 事件:
Keys that do not correspond to an ASCII Char value (SHIFT or F1, for example) do not generate an OnKeyPress event.
F5 是这些键之一。请尝试使用 OnKeyDown 事件。
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
Memo1.Lines.Add('Escape')
else if Key = VK_F5 then
Memo1.Lines.Add('F5');
end;