我在选择节点时这样动态增加所属节点的子节点

解决方案 »

  1.   

    用dxdbtreeview吧,这个比较好的,直接与数据库连接,省了好多麻烦。
      

  2.   

    var
      treenode :  TTreeNode; 
    begin
          treenode := TreeView1.Selected;//你选择的节点
          treenode := TreeView1.Items.AddChild(treenode,'下一级');//增加下一级
    end;
      

  3.   

    bxh2dai的方法还是不行,我现在的代码有问题请大家看一下帮忙解决
    procedure TForm1.TreeChange(Sender: TObject; Node: TTreeNode);
    var
    s:string;
    begin
      mynode[level]:=tree.Selected;
      s:=copy(mynode[level].Text,1,pos('-',mynode[level].Text)-1);with AdoQuery1 do
    begin
    close;
    Sql.Clear;
    sql.Add('select cVenAbbName from vendor where cVCCode='+''''+s+'''');
    open;
    mynode[level]:=tree.items.AddChild(tree.Selected,adoQuery1.fieldbyname('cVenAbbName').AsString);
    end;
    end;
      

  4.   

    procedure TForm1.TreeChange(Sender: TObject; Node: TTreeNode);
    var
    s:string;
    begin
      s:=copy(nodeText,1,pos('-',nodeText)-1);
    with AdoQuery1 do
    begin
    close;
    Sql.Clear;
    sql.Add('select cVenAbbName from vendor where cVCCode='+''''+s+'''');
    open;
    if not isempty then
      node:=tree.items.AddChild(node,adoQuery1.fieldbyname('cVenAbbName').AsString);
    end;
    end;
      

  5.   

    请问 chinayk11(风中流云) 方法是可行,但我从数据库读出来的信息添加上去只有一条,
    是不是记录指针没移动?我还缺少什么代码,我每点击一个节点,在节点下面只会重复增加相同的记录?
      

  6.   

    procedure TForm1.TreeChange(Sender: TObject; Node: TTreeNode);
    var
    s:string;
    begin
      s:=copy(nodeText,1,pos('-',nodeText)-1);
    with AdoQuery1 do
    begin
    close;
    Sql.Clear;
    sql.Add('select cVenAbbName from vendor where cVCCode='+''''+s+'''');
    open;
    if not isempty then
      node:=tree.items.AddChild(node,adoQuery1.fieldbyname('cVenAbbName').AsString);
    end;
    end;
    但我从数据库读出来的信息添加上去只有一条,
    是不是记录指针没移动?我还缺少什么代码,我每点击一个节点,在节点下面只会重复增加相同的记录?
      

  7.   

    TreeView1.Selected := TreeView1.Items.AddChild(TreeView1.Selected, '');
      TreeView1.Selected.EditText;
      

  8.   

    procedure TForm1.TreeChange(Sender: TObject; Node: TTreeNode);
    var
    s:string;
    begin
      s:=copy(node.Text,1,pos('-',node.text)-1);
      with AdoQuery1 do
      begin
        close;
        Sql.Clear;
        sql.Add('select cVenAbbName from vendor where cVCCode='''+s+'''');
        open;
        while not eof do
        begin
          tree.items.AddChild(node,adoQuery1.fieldbyname('cVenAbbName').AsString);
          next;
        end;
      end;
    end;