TTreeViewをLoadFromFileではなく、LoadFromStreamでツリーの状態を復元しようとしているのですが、
var
MS: TMemoryStream;
slstTmp: TStringList;
begin
MS := TMemoryStream.Create;
slstTmp := TStringList.Create;
slstTmp.LoadFromFile('tree.txt'); //tree.txtにはTTreeView.SaveToFileで保存された形式のテキストが入っている
slstTmp.SaveToStream(MS);
TreeView1.LoadFromStream(MS);
MS.Free;
slstTmp.Free;
・・見よう見真似でTMemoryStreamを使ってみたのですが、TreeView1の中には何も入っていません。
TTreeViewのItemsはTTreeNodeなのでどこか特殊なのかもしれませんが。
要するに、slstTmpが持ってるツリー情報をTTreeView.LoadFromFileで開くようTreeView1に移したいのです。
slstTmp.SaveToStream(MS);
MS.Position := 0; //ここ
TreeView1.LoadFromStream(MS);
うわっ! できました!!
ストリームの場合はPositionを0にしないといけないんですね…
小さなことだけど、大変勉強になりました。 どうもありがとうございます!!
ツイート | ![]() |