我有一个带有面板的表单。
我在运行时创建框架,并通过将框架的parent属性设置为面板来在面板上显示它们。
在创建面板时,我没有设置owner属性,因为我自己管理框架的生命周期。
到现在为止,我没有任何问题。接下来,我在框架上放置了一个TActionList,其中包含一些操作的快捷方式。
我发现直到我将框架的owner属性设置为面板时,我的操作才会执行。
有人能给我解释一下吗?我认为owner属性只是组件负责释放子组件,而不是负责转发关键事件。
发布于 2011-03-16 21:43:03
表单的快捷处理是在TCustomForm.IsShortCut中完成的,其中组件被迭代,其中包括TActionLists。虽然框架不属于表单,但在迭代过程中没有找到框架上的任何操作列表。您可以通过将操作列表或整个框架的所有者更改为窗体,同时将框架附加到面板来解决此问题。创建后更改所有者可以使用InsertComponent完成。
发布于 2011-03-16 15:35:53
Owner主要是关于生命周期管理的。但至少有poOwnerFormCenter将Owner用于完全不同的目的。你可能被另一个目的绊倒了。
https://stackoverflow.com/questions/5322150
复制相似问题