CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

请教关于数据库和TREEVIEW之间互换的问题(一定给分)

楼主charlescoco(悠子)2002-10-23 13:57:17 在 Delphi / 数据库相关 提问

假设我现在做了一个Edit1,名字叫A公司;一个Edit2,名字叫B人员;B人员是A公司  
  里的人,我建立了一个Access的数据库,我希望在输入资料进Access里面的同时在TreeView里面可以显示A公司-----B人员。然后在调用的时候只用单击Treeview里面的资料就可以调用我所希望的数据库内容,请问怎么办啊~~各位大侠,这个问题对  
  你们来说很简单,但是小弟却无法解决,谢谢啦~~~~~~~~~~~~~~(一定给分啊) 问题点数:60、回复次数:10Top

1 楼l_xiaofeng(行到水窮處,坐看雲起時!)回复于 2002-10-23 14:10:32 得分 60

要思路还是要代码?  
   
  使用循环控制去数据到treeview。如果多的话就用tstringlist。  
  别的好象没什么了吧?  
   
  前些天弄了treeview,反感,不想再弄了。Top

2 楼charlescoco(悠子)回复于 2002-10-23 14:12:38 得分 0

我希望是代码Top

3 楼l_xiaofeng(行到水窮處,坐看雲起時!)回复于 2002-10-23 14:12:54 得分 0

或者以关键字treeview去搜索下吧。很多。Top

4 楼l_xiaofeng(行到水窮處,坐看雲起時!)回复于 2002-10-23 14:13:58 得分 0

如果你不自己弄,光要代码对你也没什么好处,如果在不急的情况还是自己看资料弄对你也有帮助,不是我不想帮你。Top

5 楼charlescoco(悠子)回复于 2002-10-23 14:14:47 得分 0

请问你的QQ是多少?Top

6 楼xjboy(刀剑客)回复于 2002-10-23 14:18:22 得分 0

前几天弄了一个,自己设置一个存放配置的表格,每次都从里面读取Treeview得配置信息,很简单的。写一个动态的SQl,然后每个结点的data存放该结点所对应的数据表格,每次点击就可以看到相应的数据了,我的代码是和我的数据库结合起来的,估计对你没多达用处。Top

7 楼l_xiaofeng(行到水窮處,坐看雲起時!)回复于 2002-10-23 14:18:26 得分 0

我的QQ是14373338  
   
  下面这段残缺代码是网上找来的。可能对你有帮助。  
   
  var  
        TN1,TN2,TN3:TTreeNode;  
        i,j:integer;  
        Rooms:TStringlist;  
  begin  
                TV1.Items.Clear;  
                tn1:=tv1.Items.Add(nil,'全部类别');  
                tn1.ImageIndex:=1;  
                Rooms   :=   TStringList.Create;  
   
                sltTreeViewKey.Clear;  
   
                with   dm1   do  
                begin  
                        for   i   :=   0   to   SltGroups.count   -   1   do  
                        begin  
                            tn2:=tv1.Items.AddChild(tn1,trim(SltGroups[i]));  
                            tn2.ImageIndex:=1;  
  //sltgroups为tstringlist型。是由前面查询出的数据而来。  
                            GetRoomsByGroup(Rooms,   TN2.Text);  
                            for   j   :=   0   to   Rooms.Count   -   1   do  
                            begin  
                                    TN3   :=   TV1.Items.AddChild(TN2,Rooms.Names[j]);  
                                    TN3.ImageIndex   :=   1;  
                                    //保存TreeNode和RoomID之间的对应关系  
                                    sltTreeViewKey.Add(inttostr(TN3.AbsoluteIndex)   +   '='   +   Rooms.Values[Rooms.Names[j]]);  
                            end;  
                        end;  
                end;  
   
                Rooms.free;  
   
                tv1.TopItem.Expand(false);  
                if   TV1.TopItem.Count   <>   0   then  
                begin  
                        TV1.TopItem.getFirstChild.Expand(false);  
                        TV1.Selected   :=   TV1.TopItem.getFirstChild;  
                end;  
   
  end;Top

8 楼charlescoco(悠子)回复于 2002-10-23 14:19:53 得分 0

谢谢Top

9 楼ColdWolf(天边流星)回复于 2002-10-23 14:29:48 得分 0

在每个TreeView的节点有一个Data域,是一个指针类型的,你可以将一些数据信息保存在这里。信息类型可以定义为一个结构体  
  如:   type    
                  PElement   =   ^TElement;  
                  TElement   =   Record  
                        Index   :String;  
                        Type:   Integer;  
                        Name:   String;  
                        ...  
                  End;  
  然后读数据库,如果是公司,那么就直接在TV中增加一个节点  
  NewNode   :=   TV.Items.AddChild(nil,'公司名')...  
  这个函数会返回这个节点的引用,你可以将公司节点的指针值保存到一个链表或者数组里面。  
  如果是一个职员的话,那么你就找到该公司的节点的指针值(如果在连表里面就方便了),然后   NewNode   :=   TV.Items.Add(公司节点的指针值,   '人名');  
  在每次增加一个节点的时候,你都应该创建一个结构体,把相关信息,如记录的索引值填充到这个结构体中。   如:   Element   :   pElement;  
  new   (Element)  
  Element.Index^   :=   ***;  
  然后用节点的data保存。   NewNode.Data   :=   Element;  
   
  每当你点击一个节点的时候,你可以在TreeView的Onchanged事件中  
  if   pElement(TV.Seleted.Data)^.type   =   'R'   then  
      select   *   from   RenYuanBiao   where   ID   =   pElement(TV.Selected.Data)^.Index    
  else   if   pElement(TV.Seleted.Data)^.type   =   'G'   then  
      select   *   from   RenYuanBiao   where   ID   =   pElement(TV.Selected.Data)^.Index  
   
  注意,因为Data引用的内存不是系统自动管理的,所以在删除一个节点的时候,因该手动释放这些内存。  
  Top

10 楼ColdWolf(天边流星)回复于 2002-10-23 14:31:13 得分 0

如果我没说清楚,请用MSN联系我   ysfbird@msn.comTop

相关问题

  • 数据库和Treeview
  • treeview和数据库
  • treeview和数据库
  • treeview 读取数据库生成树 的问题 100分
  • treeView和数据库问题
  • treeview 绑定数据库
  • !!!送分题:如何将treeview与数据库链接?!(一定给分)
  • 分全散了,求一用数据库动态生成treeview的方法!
  • 菜也要过中秋!~~关于treeview连数据库的问题(UP都有分)
  • 如何递归初始化treeview??数据来自数据库,解决了加分

关键词

  • 节点
  • tv
  • 数据库
  • 指针
  • 代码
  • 数据
  • 结构
  • 资料
  • 信息
  • tn

得分解答快速导航

  • 帖主:charlescoco
  • l_xiaofeng

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo