我用一个递归算法动态建了一颗树(基于一个Xml文件创建的)。我现在想做的是把这棵树的节点的索引和某个值(假如为名称代码[NameCode]关联),需要在创建树的时候就关联好,由于树的大小是未知的,我不知道该怎么做,请大家帮忙。
递归算法描述如下:
procedure buildTree(aParentNode: TTreeNode;aNameCode,aNodeText:String);
var
newTreeNode: TTreeNode;
newNameCode: String;
newNodeText: String;
begin
//Add a child node
newTreeNode := treeView1.Items.AddChild(aParentNode,nodeText);
if hasChildNode(aNodeName) then
begin
//Get the new name code
newNameCode := getNameCode(aNameCode);
//Get the new node text
newNodeText := getNodeText(aNameCode);
buildTree(newTreeNode,newNameCode,newNodeText);
end;
end;function hasChildNode(aNodeName: String): Boolean;
begin
//Do something
end;function getNameCode(aNameCode: String): String;
begin
//Do something
end;function getNodeText(aNameCode; String): String;
begin
//Do something
end;我想用一个结构数组进行关联。结构数组可以定义如下:
Type
relationRec=record
nodeIndex: word;
nameCode: String;
end;代码如上,请问下大家该怎么解决?谢谢。
递归算法描述如下:
procedure buildTree(aParentNode: TTreeNode;aNameCode,aNodeText:String);
var
newTreeNode: TTreeNode;
newNameCode: String;
newNodeText: String;
begin
//Add a child node
newTreeNode := treeView1.Items.AddChild(aParentNode,nodeText);
if hasChildNode(aNodeName) then
begin
//Get the new name code
newNameCode := getNameCode(aNameCode);
//Get the new node text
newNodeText := getNodeText(aNameCode);
buildTree(newTreeNode,newNameCode,newNodeText);
end;
end;function hasChildNode(aNodeName: String): Boolean;
begin
//Do something
end;function getNameCode(aNameCode: String): String;
begin
//Do something
end;function getNodeText(aNameCode; String): String;
begin
//Do something
end;我想用一个结构数组进行关联。结构数组可以定义如下:
Type
relationRec=record
nodeIndex: word;
nameCode: String;
end;代码如上,请问下大家该怎么解决?谢谢。
解决方案 »
- 散分,以示感恩!第七帖
- 如何制作xp风格的窗体,说得详细一点,我是初学者
- 急!!!动态生成的dbgirdeh为什么不显示
- 怎么能让d6的dbExpress连接上MySQL5.0.4
- infoPower4000.0.3安装问题
- 简单问题:如何调用MDIChild窗体
- 请教各位LOAD的问题
- 谁会用摄像头编程呀?罗技摄像头提供了ocx控件但调用出错?(急)??????????
- 超难问题
- 有关SQL的问题
- 双击grid1出现一个选择商品的窗体,再双击那个窗体里grid2的商品,使选择的那个商品添加到grid1中的adotable1中,问题是:现在每选择一个
- 请高手出手:COM采集数据的通讯程序中如何动态创建多线程
Type
relationRec=record
nodeIndex: word;
nameCode: String;
end;
其实一点都不难
因为treeview 本身可以存储一个数据的
定义结构是对的 最好定义一个结构指针
还有 楼主为什么要自己写 hasChildNode 函数
Treeview 本身就有Haschildren 这个函数这里不写代码了,希望楼主自己试 多看帮助
我觉得很easy
有一点你可能理解错了,treeView本身的hasChildNode的方法是在你这棵树已经生成好的情况下才有用。我现在连树都没生成,何来hasChildNode.我这里只不过是取了一个比较相像的名字而已。在我的hasChildNode里边,我要处理很多逻辑的。