如何防止表单未激活时触发快捷方式

时间:2010-05-05 15:23:25

标签: delphi

我在页面控件的选项卡中打开表单。这些表单可能包含具有快捷方式的操作。我希望只有当包含此表单的选项卡处于活动状态时才会触发这些快捷方式。

我试图覆盖表单的IsShortCut,但它没有被调用。 Form的OnShortCut也未被调用。

我想避免在每个操作上放置代码来检查它。

我正在使用Delphi 2010。

3 个答案:

答案 0 :(得分:3)

将隐藏标签上的操作列表的State设置为asSuspended。只有可见标签上的操作列表的状态应为asNormal。这将阻止快捷键工作。它还可以防止这些操作更新,这对您的应用程序来说可能是好事也可能不是。

答案 1 :(得分:0)

尝试切换时将表单的Enabled设置为false,切换到其选项卡时设置为True。这应该禁用表单上的所有内容,包括快捷方式。

答案 2 :(得分:0)

将所有快捷方式放入操作中,并将这些操作放入每个表单的一个操作列表中。然后,您可以禁用当前未激活的表单的操作列表。 (我不记得要设置的确切TActionList属性或调用或激活/停用它的方法,但它就在那里。)