Можно сделать проще - сохранять содержимое формы целиком, после перезапуска сборки состояние TreeView восстановится полностью, да и не только дерева.
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
FStr: TFileStream;
MemStr: TMemoryStream;
begin
if FileExists('Form1.ini') then
begin
Form1.DestroyComponents;
FStr:= TFileStream.Create('Form1.ini', fmOpenRead);
MemStr:= TMemoryStream.Create;
ObjectTextToBinary(FStr, MemStr);
MemStr.Position:= 0;
MemStr.ReadComponent(Form1);
MemStr.Free;
FStr.Free;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
FStr: TFileStream;
MemStr: TMemoryStream;
begin
FStr:= TFileStream.Create('Form1.ini', fmCreate);
MemStr:= TMemoryStream.Create;
MemStr.WriteComponent(form1);
MemStr.Position:= 0;
ObjectBinaryToText(MemStr, FStr);
MemStr.Free;
FStr.Free;
end;