Я пытаюсь реализовать простой менеджер контактов, используя компонент VirtualStringTree. Я настроил его так, чтобы он выглядел как компонент представления списка только с тремя столбцами, которые будут содержать текст:
Для структуры данных я использую svTree от Linas, который был упомянут в другом вопросе переполнения стека.
Я объявил такую запись:
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')
и MyTree.LoadFromFile('C:/Test.dat')
, но когда он загружен обратно, древовидное представление не содержит данных, только пустая строка.