仔细阅读帮助中关于控件编写的内容,特别留意TDataLink类,他是将数据同数据感知控件联系起来的纽带。
你可以在你的Tree控件里嵌入一个TDataLink类

解决方案 »

  1.   

    To TommyTong(童童) 
    谢谢你的提示,不过我对于DELPHI真的算新手,你可以给我详细点的提示吗?
      

  2.   

    你的程序是从中间件取数据,
    你用那个中间件定义事件了吗?
    可以在数据改变之类的事件里,
    重新读入数据。另外,你可以使用TClientDataSet,
    将数据先取来存在它之中。
    TDBGrid连上这个ClientDataSet,
    你显示的TREE(不管是你自己写代码还是使用其它控件)也连上
    这个TClientDataSet,
    这样DBGrid 的更改会即时显示到TREE上,最后,看来你的中间件不是MIDAS,
    但你也可以自已写手工提交CLIENTDATASET数据更改的代码。
      

  3.   

    To halfdream(哈欠) 
    你好,你说的对,我是通过中间件取数据,我现在正试着用TREEVIEW来实现,不用TSTRINGLIST 了,但我有个问题,我可以用CLIENTDATASET来传送我的数据给中间件吗?
      

  4.   

    当然是不能直接提交更改数据的,
    TClientDataSet有两个很重要的属性,
    一个是Data,
    另一个是Delta...你对ClientDataSet数据集作的更改全都放在这儿,
    没有办法知道它的具体数据结构,
    但是可以通过另一个TClientDataSet来解析它。
    自己产生几条更新数据集的SQL语句,
    传给中间件,在中间件中定义方法去更新数据库。
    对了如果你中间件是可以直接取得,IRecordSet这之类的ADO接口的,
    还可以考虑使用DELPHI中ADO控件
      

  5.   

    halfdream(哈欠) ,你好,你说TClientDataSetde 两个属性是DATA,和Delta...,他们具体的属性名称是什么哪?同时如果我是通过DLL调用
    中间件的,那我是否还可以使用TClientDataSet,你是否有有关的例子给我作一下样本
    。谢谢
      

  6.   

    看看devexpress 中的dxdbtree吧,很好用的
      

  7.   

    To halfdream(哈欠) 
    问题还没解决,但看下来,你的回答最有帮助,所以,分数给你了