zoukankan      html  css  js  c++  java
  • 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—文件管理
    Linux—系统管理
    Mysql—添加用户并授权
    Linux—文件权限管理(chmod、chown、chgrp)
    Linux—管理用户、用户组及权限
    Mysql—修改用户密码(重置密码)
    Linux—编译安装详解
    Python—实现sftp客户端(连接远程服务器)
  • 原文地址:https://www.cnblogs.com/yplong/p/2361316.html
Copyright © 2011-2022 走看看