最好记录下,每个结点的level和父结点的index(parent.index)
这样可以唯一确定要添加的结点的位置,下面是我刚做的,拿来探讨一下
for i:=1 to aTable.RecordCount-1 do
begin
iLevel:= aTable.FieldByName('Level').Asinteger;
iParent:=aTable.fieldByname('ParentIndex').AsInteger;
strNodename:= aTable.fieldByname('NodeName').AsString; while (iLevel <> oldNode.Level+1) do
begin
if ( iLevel > oldNode.Level) then
oldNode:=oldNode.getFirstChild
else
oldNode:=oldNode.Parent;
end;
if (iParent<>oldNode.Index) then
oldNode:=oldNode.Parent.Item[iParent];
aTree.Items.AddChild(oldNode,aTable.fieldbyName('NodeName').AsString);
aTable.Next;
end;oldNode是要添加的结点的父结点,相应的要有个数据表,其中字段有level,parentindex,nodename
这样可以唯一确定要添加的结点的位置,下面是我刚做的,拿来探讨一下
for i:=1 to aTable.RecordCount-1 do
begin
iLevel:= aTable.FieldByName('Level').Asinteger;
iParent:=aTable.fieldByname('ParentIndex').AsInteger;
strNodename:= aTable.fieldByname('NodeName').AsString; while (iLevel <> oldNode.Level+1) do
begin
if ( iLevel > oldNode.Level) then
oldNode:=oldNode.getFirstChild
else
oldNode:=oldNode.Parent;
end;
if (iParent<>oldNode.Index) then
oldNode:=oldNode.Parent.Item[iParent];
aTree.Items.AddChild(oldNode,aTable.fieldbyName('NodeName').AsString);
aTable.Next;
end;oldNode是要添加的结点的父结点,相应的要有个数据表,其中字段有level,parentindex,nodename
解决方案 »
- Undeclared identifier: 'ivAlways'
- 导出EXCEL问题
- 求最简单的FUNCTION,将ABCDEF,倒过来变成FEDCBA的写法!
- 主从表问题,分不够再加
- 树形结构怎么用呀,我看了很多,但是没有明白原理,有那们大哥,可以相告,小弟不感激不尽!!!
- (100分)各位大哥哥大姐姐求求你们了救救我吧!!看看我的贴子吧!!!
- 一個簡單的sql問題了。
- sql server中如何使用处理IIF函数?
- 请教:Delphi中TTreeView中的项目序列如何调整??急用 + 高分
- 急急急急在delphi中如何调用可执行文件
- 有谁知道Delphi的经典网站
- 有关下面的定义应该如何去实现?
如:
Type
MyNodeInfo=Record
SelfCode,ParentCode:string;
IsUse:Boolean;
.
..
...
end;
2.定义一个指针类
PMyNodeInfo:MyNodeInfo^;
3.用一个递归将表中的节点加上,在添加节点的同时,将当前纪录的field内容读如record,并将node.data := pointer(PMyNodeInfo1)
如:
var
PTemp:PMyNodeInfo;
node:TTreeNode;
begin
...
node := TreeView1.Items.Add(ParentNode,'test');
...
PTemp^.SelfCode := FieldByName('SelfCode').asstring;
...
node.data := pointer(PTemp);
...
end;
TreeView1.Items.AddObject(ParentNode,'test',PTemp);
如果添加子结点就是AddChildObject,可以看帮助,有详细介绍