【发布时间】:2021-07-05 12:45:22
【问题描述】:
在一个非常复杂的 Delphi 10.4.2 VCL 应用程序中,一个未知的控件或组件似乎“窃取”了CTRL+A 快捷方式。为了检测窃取快捷方式的对象,我尝试使用TApplicationEvents.OnShortCut 事件处理程序:
procedure TformMain.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
case Msg.CharCode of
VK_A:
begin
//CodeSite.Send('TformMain.ApplicationEvents1ShortCut: ', ???);
end;
end;
end;
这个事件处理程序可以用来检测“小偷”吗,或者你会建议哪种方法?
【问题讨论】:
-
为什么不在所有 .PAS 文件中搜索文本
ctrl或ssCtrl? -
@AmigoJack:这将错过大量所有可能的情况,例如,当您有一个
TAction并将其Shortcut设置为 Ctrl+A 时。它存储在 DFM 中(完全以数字形式)。 -
@AndreasRejbrand 没错:Action 的
CTRL+A快捷方式在 DFM 中存储为ShortCut = 16449。
标签: delphi keyboard-shortcuts delphi-10.4-sydney