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;

    每天早上敲醒自己的不是闹钟,是夢想!
  • 相关阅读:
    脚本化css 脚本化内联样式 脚本化css类
    jquery插件,表单验证validation plugin的使用
    跨域
    自己做的一个可以用在pc端移动端上点星星评论
    优化Jquery,提升网页加载速度
    编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范
    eclipse编辑js很慢
    sortable bootstrap
    draggable,droppable
    eclipse配置
  • 原文地址:https://www.cnblogs.com/yplong/p/2361316.html
Copyright © 2011-2022 走看看