如何分离面板并将其显示在单独的窗口中?
|
假设我有一个表单A,其中包含一个面板(其中包含许多其他控件)和一个表单B,该面板为空。
我可以通过编程从面板A上拆下面板,然后将其移到表格B中(也许还可以移回表格A)吗?
我知道我可以更改面板的所有者,但是它可以在不同的表单之间工作吗?
更新:
经过一番谷歌搜索后,我看到有一个ParentWindow属性。
没有找到相关结果
已邀请:
4 个回复
慰泥悍瓶
疼嘶桐
凡夕
。
额外的引用似乎有点愚蠢:
和
指向同一个对象,但是从语义上讲是首选。也许中央控制变量更好。 更新: 我错误地认为RemoveComponent级联到面板上的子控件。当然,它不会,因此仅从表单A删除面板将使该面板的所有子控件仍归表单A所拥有。因此,我添加了RemoveComponents例程以从该面板的所有子控件中删除所有权。 请注意,面板的子控件目前没有所有者。但是,由于它们是面板的父控件,因此破坏面板将释放这些控件。因此,请确保面板有一个父面板,或明确释放面板。 以上所有内容仅适用于设计时创建的面板,将设计时放在表格上,这是我的假设。由于显然需要或需要这种变化的父母行为,因此您可能需要考虑在运行时完全实现它。为了保持设计面板设计时间的能力,我建议创建一个框架,您可以在该框架上设计该面板,并在窗体周围跳转框架。
帆攀缺锯欧
请注意,必须先创建
,然后才能执行此操作。 有关更多信息,请参见此处的Delphi Wiki页面。