(急)上次TreeView的问题还没解决,再出50分(好心疼)(50分)

  • 主题发起人 主题发起人 DickWu
  • 开始时间 开始时间
D

DickWu

Unregistered / Unconfirmed
GUEST, unregistred user!
上次Jim写的例子程序没写全,我还是做不出.
现在把问题再说一遍:

我有一个动态生成的记录数组(没记录有三个数据域),想按其中的关系加到
TreeView中.
该记录数据的结构是[root,middle,foot], Foot表示该节点,middle表示
foot的上级节点,root表示middle的上级节点.
如记录[AA,BB,CC], 加入时先在根节点中找寻AA节点,没找到的话就加入,
找到的话就继续, 然后到AA根节点下面找BB节点,没找到的话也加入,
然后再到BB节点下找CC,如果已经有了CC,就直接返回,否则加入CC

完成后如下图:

DD
|
|
EE
|
|
AA
|-----BB
|---CC
|
|---FF

Root,Middle,Foot是标识该节点的integer数据(放在data属性中)
显示的Text则根据该标识数据到另一个数组[ID,Text}中寻找

上次用Jim的代码可以生成根节点,
可是我不知道怎么在一个指定的上级节点的下级节点中寻找其他节点.


那位大侠能给个完整一点的示例代码?
 
procedure AddNode(parent: TTreeNode; Id: Integer);
var
i: Integer;
begin
find := false;
if parent = nil then
begin
for i := 0 to treeview1.items.count - 1 do
if integer(treeview1.items.item) = id then
begin
result := treeview1.items.item;
exit;
end;
end
else
for i := 0 to parent.count - 1 do
if integer(node.item.data) = id then
begin
result := node.item;
exit;
end;
result := treeview1.items.addchildobject(parent, another_array[id], ptr(id));

end;
procedure AddNodes(root, middle, foot);
var
node: TTreeNode;
begin
node := nil;
node := AddNode(node, root);
node := addnode(node, middle);
addnode(node, foot);
end;
 
jim said is ok!
 
300分都没解决?
 
300?
我怎么没看到? 可惜可惜可惜
 
接受答案了.
 
后退
顶部