私はDelphi 2005のTDockTabSetとTPanelを用いてドッキング可能なフォームを作成しています。
ドッキング位置の保存と復元をしたいのですが、TDockTabSetの機能を生かしたまま復元する方法はないでしょうか?
解決しました。DockManagerのストリーム読み書き機能を使えばよいようですね。
復元は
ms := TMemoryStream.Create;
try
RegistryIniFile.ReadBinaryStream('Docking', 'DockPanel', ms);
ms.Position := 0;
DockPanel.DockManager.LoadFromStream(ms);
finally
FreeAndNil(ms);
end;
保存は
ms := TMemoryStream.Create;
try
DockPanel.DockManager.SaveToStream(ms);
ms.Position := 0;
RegistryIniFileWriteBinaryStream('Docking', 'DockPanel', ms);
finally
FreeAndNil(ms);
end;
(これはドッキング「位置」の保存と復元。ドッキングはあらかじめManualDockしておく)
とするとうまくいきました。
ツイート | ![]() |