zoukankan      html  css  js  c++  java
  • delphi 保存 和 打开 TREE VIEW的节点已经展开的状态

    如果每次打开后能自动读取上次展开的状态就会非常快捷 

    下载地址:

       实现方法

      

    将已经展开的节点索引 放在一个文本中
    最后选中的那个节点索引放在最后一位
    然后通过下面这个代码这实现

    {
       TreeView1.Items[0].Expand(False); //按节点索引 展开节点一级
       TreeView1.Select(TreeView1.Items[1],[]);// 按节点索引 选中节点
      

    }

       TreeView1.Selected.AbsoluteIndex; //选中的节点索引号


    {
      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;


    {
    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;

    {
       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;
  • 相关阅读:
    rhel7 编写CMakeList.txt编译运行MySQL官方例子代码
    记录下 rhel 7 安装MySQL 并重置root密码
    杨辉三角 可以不用二维数组的
    一个ACE 架构的 Socket Client
    一个ACE 架构的 C++ Timer
    一个C++版的网络数据包解析策略
    标记下 'net 查壳/脱壳/加壳' 工具
    C++动态加载DLL调用方法
    C# (灰度)加权平均法将图片转换为灰度图
    C# GMap下提供一个高德地图
  • 原文地址:https://www.cnblogs.com/jijm123/p/12695316.html
Copyright © 2011-2022 走看看