我刚刚学用DELPHI,不知怎样在TREEVIEW中显示数据库的数据:比如怎样将一个。DB中的数据和一个树形结构相关联啊求救

解决方案 »

  1.   

    这个没办法,自己建立节点编代码添加吧。TTREEVIEW是不能和TDATASET直接关联的。
      

  2.   

    太多这样的帖子了
    http://expert.csdn.net/Expert/topic/1775/1775118.xml?temp=.4014856看一下吧 不重复了
      

  3.   

    方法A:
         要将数据库文件中的记录用treeview显示出来,你需要建立一个记录父节点的字段,及一个记录阶的字段。
         遍历数据库中的所有记录(或用分阶遍历)并插入到TREEVIEW中。
         如果你用Delphi中的标准控件Ttreeview,那么你需要维护你的treeview与数据集(table或query)的同步:怎样维护呢?
         :将你的主(或可标识唯一)键插入到每一个node的text属性中,则你可以根据每一个node的text来定位到数据集,当然你得有一个好的方法来从node的text中提取标识键,因为你也许不可能只将标识键的内容写到node的text中。但是这样做是不恰当的,因为,也许你的用户并不想在treeview中看到你插入的(基本上是长得很难看的)标识键,这样会影响美观。你得庆幸还有另外的方法可以让你实现你的treeview与数据集的同步而无需在node的text中插入标识键。这就是node的data属性,这是一个指针,可以指向你所需要跟踪的类型,你可以建立一个record类型来记录数据集中的记录,仅仅是记录一个或一组唯一标识字段;在遍历数据库时,你先要为这个record类型分配内存空间(new(var)函数),然后将新增的node的data属性通过这个record实例指向这个刚分配的空间,执行这个遍历数据集的循环(每一次都要分配空间给你建立的类型,并将新node的data属性指向它),这样你就将这个数据集连到了你的treeview上。当你定位到某个node的时候,你可以根据它的data指针来取出你所需要定位的记录的唯一键,然后就可以定位记录,做的时候不要忘了为node的data属性做强制类型转换。你当然也要维护记录的删除或node的删除,来保持同步,不过不要忘了在删除时或在你的form释放时不要忘记同时释放掉你的node的data属性所指向的每一个内存空间。
        基本上这样就可以了,写了这么一堆,其时实现时还是比较简单的。不过如果你是个初学者,对delphi理解还较浅的话,建议你去网上down一个treeview控件。直接连接数据库的treeview控件一般不怎么灵活,难以维护阶。最好是down一个在每一个node的一个属性中直接存储值的treeview控件。infopower的1st class控件组中有一个叫Tfctreeview的控件可以实现此功能,它有二个string类型的属性可以直接记录值。祝你好运!