zoukankan      html  css  js  c++  java
  • 根据数据库结构生成TreeView

    procedure TUIOperate.FillTree(treeview: TTreeView);
    var
      findq: TADOQuery;
      node: TTreeNode;
    
      //这个方法是根据记录的id字段值,查找TreeView上的父节点
      function FindParentNode(id:Integer):TTreeNode;
      var
        i:Integer;
      begin
        Result := nil;
        for i := 0 to treeview.Items.Count - 1 do
        begin
          //比较Node的Data值和记录的id值
          if Integer(treeview.Items[i].Data) = id then
          begin
            Result := treeview.Items[i];
            Break;
          end;
        end;
      end;
    
    begin
      findq := TADOQuery.Create(nil);
      findq.Connection := controler.DataConnect.Connection; //这里的Connection指向你的数据连接
      try
        treeview.Items.BeginUpdate;
        treeview.Items.Clear;
        //选出所有记录,并按parentid排序,这样可以保证先添加顶级节点,在下级记录添加时,总能找到父节点
        findq.SQL.Text := 'SELECT * FROM [Catalog] order by parentid,id';
        findq.Open;
        while not findq.Eof do
        begin
          //如果是最顶级,直接添加到Treeview
          if findq.FieldByName('parentid').AsInteger = -1 then
            //将id值,保存在Node的Data中,以便查找用
            treeview.Items.AddObject(nil,findq.FieldByName('CatalogName').AsString,Pointer(findq.FieldByName('id').AsInteger))
          else
          begin
            //查找上级节点
            node := FindParentNode(findq.FieldByName('parentid').AsInteger);
            if node <> nil then
              treeview.Items.AddChildObject(node,findq.FieldByName('CatalogName').AsString,Pointer(findq.FieldByName('id').AsInteger));
          end;
          findq.Next;
        end;
      finally
        findq.Free;
        treeview.Items.EndUpdate;
      end;
    end;
    View Code
  • 相关阅读:
    MySQL (一)(未完成)
    HTML 学习笔记 CSS3 (边框)
    HTML 学习笔记 JavaScript (函数)
    HTML 学习笔记 JavaScript (对象)
    HTML 学习笔记 JavaScript (变量)
    HTML 学习笔记 JavaScript (实现)
    HTML 学习笔记 JavaScript(简介)
    iOS RunTime运行时(1):类与对象
    iOS UITableView 分割线从零开始
    HTML 学习笔记 CSS(选择器4)
  • 原文地址:https://www.cnblogs.com/key-ok/p/3428869.html
Copyright © 2011-2022 走看看