【问题标题】:Why does TDataModule not execute actions when I hit shortcut?为什么当我点击快捷方式时 TDataModule 不执行操作?
【发布时间】:2010-10-19 12:49:44
【问题描述】:

我的应用程序的快捷方式处理模块包含某种“全局”热键,这些热键链接到 TDataModule 中动作列表中的它们自己的动作。 我这样做了,因为它是我拥有的快捷方式持久性和编辑系统的一部分。因此,我添加到应用程序的某个表单/框架/数据模块中的任何 TAction 都会在快捷编辑界面中进行处理和查看,然后正确保存。

所以,除了放置在 TDataModule 中的 TAction 之外,所有的工作都不会响应热键:/

【问题讨论】:

  • 对不起,愚蠢的问题。答案是:“它无法通过设计处理快捷方式”。所以,我在其中实现了快捷方式处理行为,因为我认为将 TDataModule 更改为一些 TCustomForm 后代并处理排序不可见的形式是蹩脚的。
  • 让你的答案成为正确的答案 - 其他人会面临这个问题。然后它将被正确记录。
  • @mj2008 是的,我会的。但是只有在最后 24 小时后才能发布自己的答案。
  • 我相信将 TDataModule 变为不可见的 TForm 确实非常有价值。我总是这样做。我发现它有助于测试(它为与数据相关的单元测试提供了一个非常好的平台)调试(它使数据可见,也是与数据相关的临时跟踪的一个很好的标志)和问题确定(我让一些使表单在运行时可见的未记录方式)
  • @PA 是的,这是您使用的有价值的方法。但是有一个问题:TDataModule 被设计为包含非可视组件,而 TForm 不是。 DM 旨在消除隐形形式的黑客攻击。我意识到,TForm 非常适合跟踪、测试等,但 TForm 不应该用作组件的隐形容器。所以,子类化 TDataModule 更合理,虽然更难实现。

标签: delphi c++builder vcl shortcuts datamodule


【解决方案1】:

它无法通过设计处理快捷方式。因此,我在其中实现了快捷方式处理行为,因为我认为将 TDataModule 更改为一些 TCustomForm 后代并处理排序不可见的形式是蹩脚的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多