【发布时间】:2012-12-30 21:22:32
【问题描述】:
我希望我的程序检测是否按下了 ESC 键来执行某些操作,但它没有检测到它! 即使焦点设置在另一个组件上,我也想在整个运行时检测转义键按下! 我试过这段代码
if key=#27 then
begin
//do something
end;
有什么建议吗?
【问题讨论】:
-
您需要更加具体。这段代码在你的程序中在哪里?我确定是某种关键事件,但具体是什么?除非您将 KeyPreview 设置为 true,否则关键事件往往默认为活动控件。
-
@Glenn1234 我在 OnCreate 事件中将 Keypreveiw 设置为 true,此代码在 form1 的 onkeypress 事件中,我按了转义键但没有任何反应!
-
这就是问题所在。 OnKeyPress 仅适用于字母字符。它需要在 OnKeyDown 或 OnKeyUp 事件中。
-
假设您想仅在您自己的程序中挂钩转义键,请将您的表单的
KeyPreview属性设置为true。 -
你想检测这个系统范围吗?