在我几年前开发的代码中,我经常使用它来随时按 Escape 键关闭当前表单:
procedure TSomeForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then close;
end;
此行为是为 TForm 定义的。表格的KeyPreview
属性设置为True
让表单在任何其他组件之前对按键做出反应。对于程序的最佳部分来说,这一切都运行得非常好,但是,当 TEdit 组件聚焦于声音(adingWindows 使用声音来表示无效操作)发出。它仍然工作正常,但我从未完全消除声音。
这有什么问题吗?
重新创建的步骤:
您收到叮当声是因为您将 ESC 留在了输入中。看看 Key 是如何var?将其设置为#0,即可消除叮当声。这使其免于进一步处理。
procedure TSomeForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
begin
key := #0;
close;
end;
end;
KeyPreview 就是这样,预览将传递给控件的内容,除非您停止它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)