• Delphi 中递归生成TreeView节点的方法


    在数据库中建一张表,包含:NodeName,NodeId,ParentId 3个字段,具体什么含义,一看就知了。

    过程如下:

    procedure TFRM_channel.formtreenode(parentid:string;TreeView1: TTreeView;parentnode:TTreeNode;ADOQuery1:TADOQuery);
    var
        i:integer;
        treenode:TTreeNode;
    begin
        i:=0;
        ADOQuery1.First;
        while not ADOQuery1.Eof do
          begin
             if ADOQuery1.FieldByName('ParentId').AsString=parentid then
               begin
                  treenode:=TreeView1.Items.AddChild(parentnode,ADOQuery1.fieldbyname('NodeName').AsString);
                  formtreenode(ADOQuery1.fieldbyname('NodeId').AsString ,TreeView1,treenode,ADOQuery1);
               end;
              inc(i);
              ADOQuery1.First;
              ADOQuery1.MoveBy(i);
          end;


    end;

    在调用如下,如在窗体的create事件中:

    procedure TFRM_channel.FormCreate(Sender: TObject);
    var
      TreeNode1:TTreeNode;
      i:integer;
      nodename:string;
      nodeid:string;
      parentid:string;
      cmdstr:string;

    begin
    //初始化树形节点
       ADOQuery1.ConnectionString:=mypublic.datastr;

       cmdstr:='select * from ChanTreeNode order by ParentId ,NodeId asc';
       ADOQuery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add(cmdstr);
       ADOQuery1.Open;

           TreeNode1:=nil;
         formtreenode('000',TreeView1,TreeNode1,ADOQuery1);
    end;

    每天早上敲醒自己的不是闹钟,是夢想!
  • 相关阅读:
    文件的权限与隐藏属性
    Linux工具之bc计算器进制的转换
    老司机教你在windows不用软件隐藏重要文件
    LInux基础命令分类
    Linux文本的处理
    文件的默认权限UMASK
    H3C虚拟化之IRF
    H3C单臂路由配置
    H3C路由交换常用命令
    H3C交换机802.1&dot1x认证
  • 原文地址:https://www.cnblogs.com/yplong/p/2361316.html
Copyright © 2020-2023  润新知