QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4085|回复: 2
打印 上一主题 下一主题

关于treeview遍历,并添加子节点

[复制链接]
字体大小: 正常 放大
boyle        

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~- s; ]* J" R7 H( N5 ^/ T! y
procedure Trs.TreeView1Click(Sender: TObject);
) O3 n1 Z+ Z! O0 L! V' I" vvar node: TTreeNode;/ T/ a8 Z& R; C2 U3 X) O: T+ _6 j' o
    strnode:string;
5 |3 v9 {, z: l( `; t    label ok;
/ y0 `/ }0 C% M+ y3 B0 @8 E    label haschild;0 `! t) g, S, J; ~" Z0 w- X
    label nextnode;9 C1 p4 m- v' i* ]2 B
begin. ?9 }7 k. J* L. n! ~- m% `0 y4 `
  node:=treeview1.TopItem;
  \' N: F, P+ ]; w& R& P$ r7 H+ {haschild: node:=getfirstchild(node);
7 `2 w* \  v+ \  strnode:=node.Text;
4 R. V8 U' B. Z2 I( C  dm.qtree.Close;- S( M" Y6 f% O
  dm.qtree.SQL.Clear;# N# ?4 q& {( x8 _
  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';6 D3 }; h: e% o. G! f6 a
  dm.qtree.Open;  //取得该部门下所有员工姓名3 G6 ^/ }3 j" H- q# Q( `/ V
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
- W+ s& D( X/ p8 e. t# V7 L  begin   //将所有员工姓名都作为子节点添加
  k( C$ ]2 o3 X. K% |7 k( L6 s* z    repeat7 S7 ?# p, P; B+ |& E
    strnode:=dm.qtree.fieldbyname('empname').AsString;
' S  E1 C! N! r0 _1 J! S    treeview1.Items.AddChild(node,strnode);
# L; K  p/ ]- j+ B* C8 C    dm.qtree.Next;
* S' k0 f$ q) P$ _4 A1 c    until dm.qtree.Eof;; l0 j. d  Q  [, L- f# G
  end;
$ p6 N8 a! W- D+ M( D5 P( W  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个2 i; E: v- m# _( I; }7 d- Q
  begin7 ]$ M- g9 U& h: o3 }
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点5 z. X9 n2 r. x
    goto haschild;
. ^; _6 K1 P0 i  M* ~8 Q  end" L3 e2 ~, a0 p% {
  else
3 ?$ E* K5 g# N4 {. R; J/ A  begin
. `3 m2 M4 a# z0 e    if node.Index =treeview1.Items.Count then goto ok% @8 k7 W- J! x# j  v) U$ E2 K
    else goto nextnode;& C! N, I5 S; l* f
  end;
, D. z& n+ C1 ?- zok:null;" ?  z6 h) c2 X! ?1 Y
end;
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    回复

    使用道具 举报

    xtmlj        

    0

    主题

    2

    听众

    95

    积分

    升级  94.74%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-12 00:09 , Processed in 0.458187 second(s), 68 queries .

    回顶部