我正在尝试使用 VirtualStringTree 组件实现一个简单的联系人管理器。我将它设置为看起来像一个列表视图组件,只有三列都包含文本:
对于数据结构,我使用的是 Linas 的 svTree,在另一个 Stack Overflow 问题中提到过。
我已经宣布了这样的记录:
type
TMainData = record
Name, Email, Password: string;
end;
在表单的 OnCreate 我有这个:
procedure TForm1.FormCreate(Sender: TObject);
begin
MyTree := TSVTree<TMainData>.Create(False);
MyTree.VirtualTree := vst1;
end;
我正在添加来自 TEdits 的数据,如下所示:
procedure TForm1.BuildStructure;
var
svNode: TSVTreeNode<TMainData>;
Data: TMainData;
begin
MyTree.BeginUpdate;
try
Data.Name := edtname.Text;
Data.Email := edtEmail.Text;
Data.Password := edtPassword.Text;
svNode := MyTree.AddChild(nil, Data);
finally
MyTree.EndUpdate;
end;
Label1.Caption := 'Count: '+IntToStr(MyTree.TotalCount);
end;
如何将其保存到要加载的流或文件中?我试过使用MyTree.SaveToFile('C:/Test.dat')
and MyTree.LoadFromFile('C:/Test.dat')
,但是当它加载回来时,树视图不包含数据,只有一个空白行。