一个关于treeview与递归调用的问题,救小弟于水深火热之中(200分)

  • 主题发起人 主题发起人 wecluo
  • 开始时间 开始时间
W

wecluo

Unregistered / Unconfirmed
GUEST, unregistred user!
窗体上有一个文本框 如edit1.text 假如输入要查询的父项编码为101 马上把结果显示在treeview
中,有高手给我写了个代码,但我不知怎样与edit1.text 联系起来
请问:现在有两个字段,怎样用递归函数实现两个字段的循环查询,并以树结构显示在treeview。
父项编码  子项编码
  101    011
  101    013
  101    022
  011    077
  011    079
  013    066
  022    018
  022    020
  077    086
  018    024
  018    016
其中在树中子项编码是父项编码的子结点显示。
多谢!!!!!!!
procedure CreateSubTree( FNodeName: String; Node: TTreeNode=nil);
Var
mLocalName:String;
begin
Query.Close;
Query.SQL.Text := 'Select * from 表名 Where FatherNodeName = '''+FNodeName + '''';
Query.Open;
While not Query.Eof do
begin
mLocalName := Query.FieldbyName('LocalName').Asstring;
CreateSubTree(mLocalName, TreeView.AddChild (Node, mLocalName)); // 此处循环递归
Query.Next;
end;
end;
请问以上代码写对了没有,并且怎样写button1的onclick事件
 
不知道你要干什么,不过这个是错的:CreateSubTree(mLocalName, TreeView.AddChild (Node, mLocalName));
应改为:
CreateSubTree(mLocalName, TreeView.items.AddChild (mLocalName,Node));
 
没太看懂你的意思, 是不是要显示出这样:
101
-- 011
-- 013
-- 022
011
-- 077
-- 079
....

在Edit中输入011后,Tree就显示:
011
-- 077
-- 079

还是其他什么意思?
 
显示树如下:
101---011|
| |------077
| |---079 |--086
|-013
|-011
|-022
 
梯上写错,正确显示如下.101是文本框edit1.text中要查询的值,而011,
显示树如下:
101---|011|
| |------077
| |---079 |--086
|-013
|-011
|-022
 
关键是几层

自联一下不就好了吗
 
s楼上高手:怎么联?
 
这个层数是不知道的,可能少,可能多,
 
用堆棧(Tstack)很容易搞定.
 
大哥,详细一点,最好有例子
 
剛剛答了一個,到
http://www.delphibbs.com/delphibbs/dispq.asp?LID=1081732
中看看吧.只需傳入你的值就可以了.
 
后退
顶部