Delphi控件TreeView如何用
控件名为TreeView1
帮我写个小例子好吗?
还有单击其中的结点.用什么事件.
如果在同一级别中:
结点的内空是相同的,但对应的内容是不一样,怎么区别。(其中的id号是不一样的)
也就是说我想把id号和在结点中的内容结合在一起.
注:其中的的数据是在数据库中提出来的.
急!!

解决方案 »

  1.   

    catnode:=treeview1.items.add(nil,'所有商品');
      with adoquery1 do
        begin
          close;
          sql.clear;
          sql.add('select longid,text from tree..testtree order by longid');
          open;      first;
          while not adoquery1.eof do
            begin
              cat1node:=treeview1.Items.AddChild(catnode,adoquery1.fieldbyname('text').value+'('+adoquery1.fieldbyname('longid').value+')');
              //treeview1.Items.Item[0].Expanded:=true;
              with adoquery3 do
                begin
                  close;
                  sql.Clear;
                  sql.Add('select distinct * from node where left(node.names,2)=:aa order by names');
                  adoquery3.Parameters.ParamByName('aa').value:=copy(adoquery1.fieldbyname('longid').value,1,2);
                  open;
                  first;
                  while not adoquery3.Eof do
                    begin
                      treeview1.Items.AddChild(cat1node,'('+adoquery3.fieldbyname('names').value+')'+adoquery3.fieldbyname('ide').value);
                      next;
                      //treeview1.Items.Item[1].Expanded:=true;
                    end;
                end;
              next;
            end;
         end;
      

  2.   

    procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if treeview1.Selected.Level=1 then
        begin
         adoquery1.Close;
         adoquery1.SQL.Clear;
         adoquery1.sql.add('select * from tree..testtree where longid=:aa');
         adoquery1.Parameters.ParamByName('aa').Value:=copy(treeview1.Selected.Text,4,2);
         showmessage(copy(treeview1.Selected.Text,4,2));
         adoquery1.open;
         edit1.text:=adoquery1.fieldbyname('longid').value;
         edit2.text:=adoquery1.fieldbyname('text').value;
         //treeview1.Selected:=nil;
         //edit1.text:=treeview1.Selected.Text;
        end;
      if treeview1.Selected.Level=2 then
        begin
          adoquery1.Close;
          adoquery1.SQL.Clear;
          adoquery1.SQL.Add('select* from tree..node where names=:aa');
          adoquery1.Parameters.ParamByName('aa').Value:=copy(treeview1.Selected.Text,2,4);
          showmessage(copy(treeview1.Selected.Text,2,4));
          adoquery1.Open;
          edit1.Text:=treeview1.Selected.Parent.Text;
          edit2.Text:='';
          edit3.Text:=adoquery1.FieldValues['names'];
          edit4.Text:=adoquery1.FieldValues['ide'];
        end;
    end;
      

  3.   

    如果是在着急,那么使用DevExpress的DBTreeView!!!你的要求这个控件都能实现!!!