数学建模社区-数学中国

标题: 关于treeview遍历,并添加子节点 [打印本页]

作者: boyle    时间: 2005-2-2 10:32
标题: 关于treeview遍历,并添加子节点
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
6 V2 T0 R8 d6 cprocedure Trs.TreeView1Click(Sender: TObject);" g1 Y; k; _5 h; |6 h' [# m
var node: TTreeNode;- i% I% l& r6 v6 \$ l* }! y
    strnode:string;) X% R! S3 O9 K8 d( X
    label ok;# n6 B- A7 E9 l* u; m7 u- @
    label haschild;
8 v$ ?& ?8 [! m! I6 L% A9 D    label nextnode;
: u9 i- J$ B* Q* R8 a: y6 N1 R) Ebegin
5 f( o: p# x9 I. s  node:=treeview1.TopItem;
1 w% g8 c! y; B9 phaschild: node:=getfirstchild(node);, U; Z1 y" S, `  k2 {& e
  strnode:=node.Text;
1 _5 F3 ~' Q$ B& F1 N1 R1 d+ v  M  dm.qtree.Close;
5 `' V, @7 Y* f+ r2 ]  dm.qtree.SQL.Clear;
( M( e# |! v6 Z  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
! y7 u+ r: P! k; X. h( G  dm.qtree.Open;  //取得该部门下所有员工姓名; j5 H) g7 G- w( N: Q6 C
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工), p8 P  K& ~! O4 _- J3 |8 O# K
  begin   //将所有员工姓名都作为子节点添加
. w8 i5 M) w' y& t0 F    repeat) w3 N8 ~0 P4 H6 D+ {6 Q
    strnode:=dm.qtree.fieldbyname('empname').AsString;
0 P; F! B. z2 X' S    treeview1.Items.AddChild(node,strnode);
' G/ w; O( L* o: f* t1 \$ `    dm.qtree.Next;
8 T& O9 v/ u; p4 v    until dm.qtree.Eof;
2 O. s' d3 }; U- c' n$ T) o  l  end;) ~; H. L( m  q* b" k) T: b
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个  _! u$ X$ T  R/ {0 N/ [
  begin
: \& R+ ~8 V! d3 l  r5 r) Y' wnextnode:    node:=node.getNextSibling;  //取得下一个同级节点
. A; `0 P9 r. [* X5 y& q5 p+ O" a    goto haschild;
/ L' C6 s8 w/ U: _9 t( i  end0 H8 E9 ^2 x0 g! q
  else; J7 Z1 k; h% I* y* O1 `
  begin
- p+ b- D  c9 p. ?1 E* z    if node.Index =treeview1.Items.Count then goto ok4 Z5 N2 m/ `3 t* V  n! v
    else goto nextnode;% d# Q" }; X7 u# y& e& B% M' d; U+ [: Y
  end;! J  h0 Q* P# {% D6 _, n
ok:null;
  ~/ F2 x- _2 V' ?: l3 j4 r5 d" rend;
作者: ilikenba    时间: 2005-2-2 11:35
<>我没有办法调试,不过感觉可能没什么错误,你把错误也发出来看看!</P>
作者: xtmlj    时间: 2005-3-12 19:25





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5