【问题标题】:Owner Vs PArent and Taction shortcuts on Frames框架上的所有者与父母和 Taction 快捷方式
【发布时间】:2011-07-16 09:09:33
【问题描述】:

我有一个带面板的表单。

我在运行时创建框架并通过将框架的父属性设置为面板来将它们显示在面板上。

创建面板时,我没有设置 owner 属性,因为我自己管理框架的生命周期。

到目前为止,我没有任何问题。接下来,我在框架上放置了一个 TActionList,并在操作上添加了一些快捷方式。

我发现我的动作直到我将框架的所有者属性设置为面板才执行。

有人可以解释一下吗?我认为 owner 属性只是组件负责释放子组件,而不负责转发关键事件。

【问题讨论】:

    标签: delphi owner


    【解决方案1】:

    表单的快捷处理在TCustomForm.IsShortCut 中完成,其中组件被迭代,其中包括TActionLists。虽然框架不属于表单,但在迭代期间没有找到框架上的任何操作列表。您可以通过在框架附加到面板时将操作列表或完整框架的所有者更改为表单来解决此问题。创建后更改所有者可以通过InsertComponent完成。

    【讨论】:

    • 非常感谢,这是我正在等待了解幕后情况的答案
    【解决方案2】:

    所有者主要关注生命周期管理。但至少有 poOwnerFormCenter 将 Owner 用于完全不同的目的。而且你可能偶然发现了另一个目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多