数学建模社区-数学中国
标题:
关于treeview遍历,并添加子节点
[打印本页]
作者:
boyle
时间:
2005-2-2 10:32
标题:
关于treeview遍历,并添加子节点
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
1 Y/ G3 r% f% e9 e( o1 w9 q; `, H
procedure Trs.TreeView1Click(Sender: TObject);
$ g- K8 L" s8 [, E8 o
var node: TTreeNode;
1 S7 C# ^5 ]3 x$ E1 |5 ]" F- S1 `
strnode:string;
5 q) _, W- x) j+ D. N' D
label ok;
- A" Y( b& G; _% g: Q1 N
label haschild;
# C# _9 f+ {; N3 V. v+ v$ Q
label nextnode;
3 }4 b' U) `- i( _
begin
( P: O0 F! Q( v3 M" H/ |) K4 b9 N
node:=treeview1.TopItem;
. e# K" r- @8 D* M
haschild: node:=getfirstchild(node);
% J' j2 p/ Y; [% U. O5 V$ T1 l
strnode:=node.Text;
0 n; x5 T* J8 u4 V5 u
dm.qtree.Close;
% H/ t% p% @4 E" s4 E# ~
dm.qtree.SQL.Clear;
+ P' z& u7 |+ I" K) c+ B& o
dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
+ F) G! b( e( ~# }1 Z! W/ [6 V
dm.qtree.Open; //取得该部门下所有员工姓名
7 J. {+ {; k Y6 k" Q% O6 v& u
if not(dm.qtree.IsEmpty) then //如果记录非空(即该部门下有员工)
+ A0 B! }+ x; x, L
begin //将所有员工姓名都作为子节点添加
9 V7 c. B5 R* b$ t- i- A6 {: C! E/ I3 m* g
repeat
' L. d) A1 B* G/ \! J
strnode:=dm.qtree.fieldbyname('empname').AsString;
, W9 p4 y y4 p. v) o* b$ l3 b
treeview1.Items.AddChild(node,strnode);
/ V6 j3 n \: a- ?# Z
dm.qtree.Next;
& T1 W8 Q. I) j9 ^
until dm.qtree.Eof;
. C3 }$ A' u, f
end;
! s( m& I2 g' `; {* @
if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个
, R. E0 G% J+ M. t
begin
0 o& b0 r4 F6 X% C2 v( L) y
nextnode: node:=node.getNextSibling; //取得下一个同级节点
! X1 l s. a) ]2 l% O% N3 o+ [" T
goto haschild;
1 r7 `2 ^6 ?+ M P/ {( O) k
end
+ l0 L6 T, G! @5 _! o
else
, b0 G4 n) x: i. R
begin
% U! m% b. e+ N5 J; Y; G8 [% a9 i* N
if node.Index =treeview1.Items.Count then goto ok
7 [6 y; k5 ?5 O$ q
else goto nextnode;
1 x/ v9 ^0 S6 [% x! k {
end;
% h- z: O% b) a5 Y
ok:null;
+ }" ]3 o& v; ^( m
end;
作者:
ilikenba
时间:
2005-2-2 11:35
<
>我没有办法调试,不过感觉可能没什么错误,你把错误也发出来看看!</P>
作者:
xtmlj
时间:
2005-3-12 19:25
好
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5