0

私は5つのフォームを作成し、実行時に次のようなものを使用してDockTargetというパネルにそれらをドッキングしています

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

5 つの子すべてが作成され、ドッキングされた後、私は呼び出しています

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

保存する前にメモリ内のストリームをクリアする必要があります。そうしないと、最初の1つだけがロードされた2セットのドッキングデータになってしまいました。

于 2010-11-09T09:34:19.180 に答える