有一个表
a b c
ab 0 101
aba 101 10101
abb 101 10102
abaa 10101 1010101
abab 10101 1010102
af 0 101
afa 101 10101
afb 101 10102
afaa 10101 1010101
afab 10101 1010102
ac 0 101
aca 101 10101
acb 101 10102
表中,b为0的是根结点,aba,abb是ab的子结点,abaa,abab是aba的子结点,下面以此类推,这样的treeview应该怎样实现????????????
a b c
ab 0 101
aba 101 10101
abb 101 10102
abaa 10101 1010101
abab 10101 1010102
af 0 101
afa 101 10101
afb 101 10102
afaa 10101 1010101
afab 10101 1010102
ac 0 101
aca 101 10101
acb 101 10102
表中,b为0的是根结点,aba,abb是ab的子结点,abaa,abab是aba的子结点,下面以此类推,这样的treeview应该怎样实现????????????
解决方案 »
- 高手,请问有没有办法设置Tcpclient的Connect timeout
- 关于DELPHI的WEBSERVICE 是否可以用TIdTCPServer组件与客户端进行通信并传输文件啊?
- 请教一个对控件数组创建的控件产生单击事件的问题?请各位大侠关注一下。谢谢!!
- 一个对高手来说的小问题?
- TDBLookupComboBox如何进行刷新?
- 一个很简单的问题,你进来一定能得到分:)
- 怎样将一些文件放在exe文件内,当执行时自动复制硬盘上,谢谢!
- 主细结构,,,,table_table,query_table 可以配合,怎样把query-query配合呀。
- 菜鸟问题,请问那个函数或抄做符可以求A的B次方?
- Delphi5在win2000或NT下能正常运行吗?
- 求SQL语句
- 存储过程运行一段时间后突然不能传递参数?请教!!!!!!!!!!
S:String;
Node1,Node2,Node3;
Begin
While ... Do
Begin
S:=..................................;
If S='A' Then
Begin
Node1 := suiTreeView1.Items.Add(suiTreeView1.Items.GetFirstNode,'A');
End;
If S='Ab' Then
Begin
Node2:=suiTreeview1.Items.addchild(Node1,'Ab');
End;
If S='Aba' Then
Begin
Node3:=suiTreeview1.Items.addchild(Node2,'Aba');
End;
// 类推.......
End;
End;
var
mynode: Treeview;
Treeview1.Items.AddChild(mynode,adoquery2.fieldbyname('codename_').AsString);//添加名称
首先找出父节点是0的,也就是根目录,添加上去(假设为ab,结点ID为101),再找出父结点ID为101的,添加到ab下面,如此遍历。
代码有点麻烦,LZ研究研究
首先找出父节点是0的,也就是根目录,添加上去(假设为ab,结点ID为101),再找出父结点ID为101的,添加到ab下面,如此遍历。
具体代码有点麻烦,LZ研究研究
依你的表设计,确定子节点的父节点时,条件:(b=c)且子节点的a字段的前段部份(2*(n-1))[n:=(1,2,3...)]
与父节点相同.要通过比较两个字节才能确定节点的位置。这样做有点烦琐了。
不如这样:
nodename nodecode nodefathercode
ab 01 null
aba 02 01
abb 03 01
abaa 04 02
abab 05 02
af 06 null
afa 07 06
.....从上面的数据保存结果,很明白就能看出来结构关系了。当然,你可以扩展成更多级数的树。只要增加nodecode,nodefathercode的长度就可以了。