Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个带面板的表格。
我在运行时创建框架并通过将框架的父属性设置为面板将它们显示在面板上。
创建面板时,我不设置所有者属性,因为我自己管理框架的生命周期。
直到现在我没有问题。接下来,我在框架上放置了一个 TActionList,并在操作上添加了一些快捷方式。
我发现直到我将框架的所有者属性设置为面板时,我的操作才执行。
有人可以解释一下吗?我认为所有者属性只是负责释放子组件的组件,而不是负责转发关键事件。
表单的快捷处理在 中完成TCustomForm.IsShortCut,其中组件被迭代,其中包括 TActionLists。虽然框架不属于表单,但在迭代期间没有找到框架上的任何操作列表。您可以通过在框架附加到面板时将操作列表或完整框架的所有者更改为表单来解决此问题。创建后更改所有者可以使用InsertComponent.
TCustomForm.IsShortCut
InsertComponent
所有者主要是关于生命周期管理。但至少有 poOwnerFormCenter 将 Owner 用于完全不同的目的。你可能偶然发现了另一个目的。