目的:为了把节点对应的编码所代表的数据,反映在DBGrid中.
      达到树形控件查询数据的效果.????

解决方案 »

  1.   

    存储对应记录的索引数据到TTreeNode的DATA中。
    ONCLICK时判断节点的DATA数据即可。
    DATA要存的是指针:)
    记的给我分数呀!
      

  2.   

    在ONCLICK中判断是点在那里了,再相应处理,只能这样了
      

  3.   

    似乎你是想问如何知道点击了哪个节点。用TTreeView的OnClick事件,事件处理程序中TreeView1.Selected就是点击的节点。再结合楼上诸位利用Data的技巧,一切就OK了。
      

  4.   

    procedure TForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
    begin
      if TreeView.Selected=NIl then Exit;
      ADOQuery.Active:=True;
      with ADOQuery do
      begin
        Filtered:=False;
        Filter:='id= '''+IntToStr(integer(TreeView.Selected.Data))+'''';
        Filtered:=True;
      end;
    end;
    自己根据需要修改一下
      

  5.   

    这是我程序中的click 代码,楼主可参考如果dataset是table type时
    procedure TFrmMain.TV1Click(Sender: TObject);
    var
      name:string;
    begin
      try
      name:=trim(TV1.Selected.Text);//取得节点的text
      TblSel.Locate('name',name,[loPartialKey]);//table中定位
      except
      end;
    end;
    *********************
    如果dataset是query type时
    procedure TFrmMain.TV1Click(Sender: TObject);
    var
      name:string;
    begin
      try
      name:=trim(TV1.Selected.Text);//取得节点的text
    with Query do
      active:=true;
      begin
        Filtered:=False;
        Filter:='name= '''+name+'''';
        Filtered:=True;
      end;except
      end;
    end;
      

  6.   

    procedure Tfrmysdw.fcTreeView1Click(Sender: TObject);
    var
      nodedata:string;
      curnode:Ttreenode;
    begin
      curnode:=treeview1.Items.GetNode(treeview1.Selected.ItemId);
      nodedata:=curnode.StringData;
    end;