当前位置:编程学习 > Delphi >>

delphi 树形控件的使用

怎么把数据库里面的值依次绑定上treeview控件,是delphi 自带的控件,刚学习delphi,很多都不会,麻烦指教下!
追问:

procedure TForm1.ref;
var
  i,j,k: string;
  a: integer;
  fnode,cnode: TtreeNode; //父节点fnode-----子节点cnode
begin

      tvCompany.Items.Clear;
      tvCompany.Items.Add(tvCompany.Selected,'公司信息');
      fnode :=  tvCompany.Items.Item[0];

      adoQuer.Close;
      adoQuer.SQL.Text := 'select * from company';
      adoQuer.Open;
      Memo1.Visible :=true;
       Memo1.Lines.Clear;

      while adoQuer.Eof = false do
      begin
        i := adoQuer.FieldByName('companyId').AsString;
        j := adoQuer.FieldByName('companyName').AsString;
        k := '('+i+')' + j ;
          Memo1.Lines.Add(k);
        if length(i) = 2 then
        begin
            cnode := tvCompany.Items.AddChild(fnode,k);
        end
        else
        begin
            tvCompany.Items.AddChild(cnode,k);
        end;
           adoQuer.Next;
      end;
      adoQuer.First;
      tvCompany.Selected := tvCompany.Items.Item[0];
end;

 

这样就好

答案:var
  c:string;
  Nodes:array [0..1023] of TTreeNode;
begin
  with dm1.aq_lei do
    begin
      close;
      sql.Clear;
      sql.Add('select lei from lei');
      open;
      Nodes[0]:=nil;
      TreeView1.Items.Clear;
      while not eof do
        begin
          c:=fieldByName('lei').AsString;
          Nodes[1]:=TreeView1.Items.AddChild(Nodes[0],c);
          next;
        end;
    end;
end;
给你代码。。。别问我原理。我也不懂。。对树形没有多大的研究。而且这个代码只能出现一排。。子选项搞不定。。如果你能搞定的话。。顺便和我说下哈建议你下载一个三方控件,用里面的TdxDBTreeList来直接操作树形表。如果是自己用TreeView来创建的话,要用循环分多步操作了。1、查出父结点数据2、循环写入父结点(可以将各结点序号放入SelectedIndex来做临时存储)3、循环当前已写入的父结点,并根据SeletedIndex(父结点序号)来查出属于当前序号的子结点,有数据的话     再循环写入子结点4、按上述方式循环判断下级子结点就可以创建一个树形结构表了。 对于添加,删除等操作,也可以根据SeletedIndex结合Level来操作。


如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la


上一个:关于Delphi的问题
下一个:delphi中设置密码登陆

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,