关于TreeView!(100分)

  • 主题发起人 主题发起人 yzy25
  • 开始时间 开始时间
Y

yzy25

Unregistered / Unconfirmed
GUEST, unregistred user!
动态添加TreeView的Items是能不能在添加是让被添加的Item自动寻找位置,自动添加在
他的父目录下!例如:
计算机专业:
计算机1班
计算机2班
自动化专业
自动化1班
自动化2班

这时需要添加一个班级-自动化3班,怎么才能让她可以自动寻找到父节点并自动添加。
所有节点由Access的tree表存放,存为
TreeName TreeNumber
自动化专业 0621
计算机专业 0622
自动化1 06211
自动化2 06212
计算机1 06221
计算机2 06222
另外怎么能有效的获得TreeNode,能不能自己来定义每个TreeNode使它与数据库中的表Tree
中的TreeNumber发生关系,从而来控制自动添加的位置!
还有AddChild与AddChildObject 的参数不同,AddChildObject多一个指针参数,这个参数
有什么用,各位大峡谢谢了!
 
我现在可以实现让用户选择专业(父节点)来添加。就是
AddChild(TreeView1.Selected,'自动化3')
可是如果不让用户选择就可以给“自动化3”来定位如何实现????
(基于前面的问题)
 
举个例子:

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
FieldName: string;
TemNode: TTreeNode;
begin
for i := 1 to TreeView1.Items.Count do
begin
TemNode := TreeView1.Items[i-1];
FieldName := TemNode.Text;
if FieldName = '自动化专业' then
begin
TreeView1.Items.AddChild(TemNode,'自动化3');
end;
end;
end;
 
请参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=0611297
在已答问题中可能就能找到答案。
 
建议改变你的表结构为 TreeName、TreeNumber、ParentNumber,
指定每个节点的父子关系(根节点ParentNumber可设为-1)。
然后就可以用类似下面的语句自动寻找到父节点并添加:
循环节点找到 ParentNode.Text := Number2Name(FindParent(Name2Number('自动化3')));
然后 AddChild(ParentNode,'自动化3')
其中 Name2Number函数从表中根据TreeName取得TreeNumber
FindParent函数从表中根据TreeNumber取得ParentNumber
Number2Name函数从表中根据TreeNumber取得TreeName
 
问题解决了!
对不起各位,忘了加分了!
现在就吧分献上!
 

Similar threads

回复
0
查看
863
不得闲
D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
后退
顶部