RT:
adoquery连接数据
treeview的数据手动添加
当我单击treeview的某个节点的时候怎么把对应的数据显示在memo上
treeview的事件如下: 
with adoquery1 do
     begin
       if (TreeView1.Selected.Level=0)and(TreeView1.Selected.Index=0) then
       begin
        Memo1//显示符合条件的数据库内容---这里不会写了--!
       end
else
begin
if (TreeView1.Selected.Level=1)and(TreeView1.Selected.Index=0) then
end

解决方案 »

  1.   

    你在TreeView1的每一个Item的data放入那个节点的数据,或者放数据库中这条记录的ID,点击的时候 ,把点击的item的data拿出来,就可以取到啦,每一个Item的data放入那个节点的数据 ,即 你把数据库中表数据封装成为一个类 ,加载的时候 ,创建类对象 ,赋值对象属性 
    不知道说明白了没有?
      

  2.   

    楼上真理,你这里取不出来,是因为你treeview加载数据时没有保存每一行和数据库中的关系,保存就行了,最常用的就是把所有的信息封装成类,简单点也可以是数组或者结构体,赋值给这一行的data,取的时候从当前行data里读取就行,会用到类型转换,不行再来
      

  3.   

    用data属性
    或者节点是唯一的话,可以根据此节点text值重新查询
      

  4.   

    with adoquery1 do
      begin
    close;
    sql.add('select 字段 from 表 where id=');
    open;
      if (TreeView1.Selected.Level=0)and(TreeView1.Selected.Index=0) then
      begin
      Memo1.text:=fieldbyname('字段').asstring;
      end;
    但问题是这样的方法 要单击别的节点的时候 就得再用一个adoquery,很是纳闷;
    最终我回头再看treeview属性,发现用treeview1.selected.text:='节点名';就省事多了,但我又想向楼上的 封装 和结构体比较高技术含量的方法,望指教,谢谢