0

我正在创建 5 个表单,并在运行时使用类似的东西将它们停靠到一个名为 DockTarget 的面板

procedure TManager.InitChild;
begin
    Child := TChildWindow.Create(Self);
    Child.ManualDock(DockTarget);
end;

在所有五个孩子都被创建并停靠之后,我正在打电话

Settings.DockSettings.Seek(0,soBeginning);
DockTarget.DockManager.LoadFromStream(Settings.DockSettings);

但它似乎没有做任何事情,所有的孩子都是停靠的,无论我在关闭表单之前对布局做了什么,它打开的时候就像LoadFromStream不存在一样。

Settings.DockSettings 是之前创建设置时从文件加载的 TMemoryStream。

我有 onFormClose

DockTarget.DockManager.SaveToStream(Settings.DockSettings);
Settings.Save;

知道为什么布局没有恢复吗?或者我可以用来保存/加载停靠布局的替代方案?

4

1 回答 1

1

只需在保存之前清除内存中的流,否则我最终得到了 2 组 Docking 数据,其中只有第一个被加载。

于 2010-11-09T09:34:19.180 回答