DELPHI 如何打开和 保存 TREEVIEW 的状态

默认的加载的样子是这样子的TREEVIEW展开后的状态是这样的{已展开的节点选中选中的那个节点}我要在加载TREEVIEW的文本时,恢复成这个样子问题已经解决了http:... 默认的加载的样子是这样子的

TREEVIEW 展开后的状态是这样的
{
已展开的节点
选中 选中的那个节点
}

我要在加载TREEVIEW的文本时,恢复成这个样子
问题已经解决了

http://www.cnblogs.com/xe2011/p/3388430.html
展开
 我来答
Testudosmile
推荐于2016-05-11
知道答主
回答量:8
采纳率:0%
帮助的人:12.6万
展开全部
  实现方法
  
将已经展开的节点索引 放在一个文本中
最后选中的那个节点索引放在最后一位
然后通过下面这个代码这实现
{
   TreeView1.Items[0].Expand(False); //按节点索引 展开节点一级
   TreeView1.Select(TreeView1.Items[1],[]);// 按节点索引 选中节点
  
}
   TreeView1.Selected.AbsoluteIndex; //选中的节点索引号
 
 
 保存TREEVIEW状态代码
{
  SaveTreeViewExplandState(TreeView1,'TreeView.txt');
}
procedure SaveTreeViewExplandState(TreeView: TTreeView; FileName: string);
var
  List: TStringList;
  i: Integer;
begin
  List := TStringList.Create;
  With TreeView do
  begin
    for i := 0 to Items.Count - 1 do
    begin
      if Items.Item[i].Expanded then
        List.Add(IntToStr(i));
    end;
    List.Add(IntToStr(Selected.AbsoluteIndex));
  end;
  List.SaveToFile(FileName);
  List.free;
end;
 
 加载TREEVIEW状态代码
{
LoadTreeViewExplandState(TreeView1, 'abc.txt');
}
procedure LoadTreeViewExplandState(TreeView: TTreeView; FileName: string);
var
  List: TStringList;
  i: Integer;
begin
  List := TStringList.Create;
  with List do
  begin
    List.LoadFromFile(FileName);

    for i := 0 to Count - 2 do //最后一行放的是最后选中的那个节点索引
    begin
      TreeView.Items[StrToInt(List[i])].Expand(False);
    end;
    TreeView.Select(TreeView.Items[StrToInt(List[Count - 1])], []);
    free;
  end;
end;
台浦泽4r
2013-10-25 · TA获得超过937个赞
知道小有建树答主
回答量:1249
采纳率:62%
帮助的人:647万
展开全部
每选中一个选项时记录一下位置,在加载时读出这个位置并指向这个位置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hys427
2013-10-25 · TA获得超过372个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:197万
展开全部
建议你保存成xml,这样恢复时也容易
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式