运行时设计 - 存储和加载表单布局(递归?)

时间:2011-08-15 14:27:44

标签: delphi persistence tpersistent

我正在创建一个应用程序,其布局需要在客户端完全配置。这意味着每个组件(控件)可以调整大小并在表单中移动,可以添加新控件或删除一些控件。 我想使用JVCL运行时设计(设计表面和对象检查器)。

问题在于存储加载表单。 TStream。 WriteComponent 方法不支持递归写入,这意味着它只保存组件的“第一级”。

因此,举例来说,如果我在一个Form上放置一个TPanel,然后在Panel上放置TButton,并在一个Form上调用WriteComponent,则只保存TPanel,而不是TButton。

我的问题是 - *如何使用 WriteComponent 存储 完整 控件层次结构

1 个答案:

答案 0 :(得分:11)

即使 Parent 不同,您也应该将表单设为所有组件的所有者。关于您的示例,按钮和面板都应该由表单拥有。