gpt4 book ai didi

delphi - 辅助快捷方式不触发

转载 作者:行者123 更新时间:2023-12-03 15:51:15 26 4
gpt4 key购买 nike

我正在使用 Delpho 2006。场景:

在数据模块上我有一个 ActionList。其中一项操作有一个快捷键 Ctrl+F4,我想要一个辅助快捷键 Ctrl+W。我尝试了以下所有方法:

将 Ctrl+W 添加到 IDE 中的操作 SecondShortcut 列表。

使用其中之一将其添加到 DataModuleCreate 过程中

ActFileCloseFile.SecondaryShortCuts.Add('Ctrl+W');

ActFileCloseFile.SecondaryShortCuts.AddObject('Ctrl+W',
TObject(Menus.ShortCut(87, [ssCtrl])));

在要使用的表单的 Create 或 FormShow 过程中使用这两种方法。

主要快捷方式始终有效,但次要快捷方式无效。

当我将 ActionList 放在主窗体而不是数据模块上时,只需在 IDE 中添加 Ctrl+W 即可工作。我做错了什么?

最佳答案

迄今为止发现的最优雅的解决方案是:

在要处理 SecondShortCut 的表单上,将其添加到 OnShortCut 事件中:

procedure TMyForm.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
Handled := dmDataModule.ActionList1.IsShortCut(Msg);
end;

替代方案:

(这不是真正的解决方案,而是一种解决方法。)

在表单上放置一个与数据模块上的操作相同的操作列表。在其执行和更新事件中,它仅将事件转发到数据模块操作。表单上的菜单使用本地操作。

在这种情况下,使用 IDE 将 Ctrl+W 添加到 secondaryShortCuts 属性就足够了。

显然,当数据模块上的操作发生变化时,我也必须更改所有本地操作。

关于delphi - 辅助快捷方式不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/851371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com