数学建模社区-数学中国

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

作者: boyle    时间: 2005-2-2 10:32
标题: 关于treeview遍历,并添加子节点
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
- `+ T# s& r  d- zprocedure Trs.TreeView1Click(Sender: TObject);
8 e' W& @. B; E4 S0 O+ |6 Hvar node: TTreeNode;% f2 M3 \2 y3 l, G# I
    strnode:string;5 n$ S8 s) B6 Q8 w7 G4 h
    label ok;
/ s& ~$ ]7 N/ X, C, k    label haschild;
( {. C% i: N' H9 [9 S, J9 j3 a8 a    label nextnode;+ t6 l7 m1 }! E0 H
begin
6 h6 C* n# X; d# a  node:=treeview1.TopItem;$ J% H- V2 v8 M: j' x6 q$ l0 d
haschild: node:=getfirstchild(node);: z2 O% b, {" F7 R9 P9 H
  strnode:=node.Text;. q' C0 `- O. G0 |5 Y" _
  dm.qtree.Close;7 [* V! B* v5 u; O5 E
  dm.qtree.SQL.Clear;
, `$ Z  |2 S8 a6 Q- C% Q' o5 k# X/ H  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';2 q! C& a3 V- p7 h9 ^: c
  dm.qtree.Open;  //取得该部门下所有员工姓名
$ J. \$ ~, k9 W  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
1 r- [4 y1 A( F! \0 L& N( |  begin   //将所有员工姓名都作为子节点添加) d% n# M0 y' S
    repeat
2 l( n* ]: g$ z$ y  Y" C    strnode:=dm.qtree.fieldbyname('empname').AsString;* n/ n3 {  Z% g; N8 K+ E
    treeview1.Items.AddChild(node,strnode);8 S7 J3 K7 D' k4 T
    dm.qtree.Next;
1 F* S$ x5 A3 w! `8 ?    until dm.qtree.Eof;, Y+ [6 P7 P, A& G5 A! b. ]2 V: V
  end;6 W7 J1 b6 C+ g; U7 `
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个6 N8 \, k! M/ m4 p& Y' t8 a
  begin
; h* B4 Y1 u9 [" m$ [% D5 hnextnode:    node:=node.getNextSibling;  //取得下一个同级节点! Y6 Z4 L, x7 W
    goto haschild;
4 [1 S( z% h% `& ^1 S+ j! e* M  end5 ^5 A, B2 e) s3 N) F
  else
" e  e( z6 {3 Y# h! }: g  begin
- N9 j! T. ~7 y7 b# {, ^    if node.Index =treeview1.Items.Count then goto ok. P2 V" I( ^2 ?7 n+ E
    else goto nextnode;2 n/ W0 ^6 t4 J: s$ b" T+ G
  end;9 z- n' d2 H3 N- }4 Y: b0 v+ I2 Q* \
ok:null;
* {+ q' j: ?# s( Z9 ^( \1 f  xend;
作者: ilikenba    时间: 2005-2-2 11:35
<>我没有办法调试,不过感觉可能没什么错误,你把错误也发出来看看!</P>
作者: xtmlj    时间: 2005-3-12 19:25
好




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