QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
# g" ], w' z' c4 Z/ e4 E$ i) a" Lprocedure Trs.TreeView1Click(Sender: TObject);
* b: ^9 c9 K: R& X& Z& ?1 Ivar node: TTreeNode;
+ L1 R% p1 E6 t" \7 P% P* z    strnode:string;7 c: ]0 C: d5 H" g) }
    label ok;. d4 A" V$ m: W9 d, S, D
    label haschild;7 n: q' I5 ]+ A: ^
    label nextnode;  a5 ~( M' R. z2 c3 Y# `
begin6 o  v$ I  i8 L0 l* n1 t
  node:=treeview1.TopItem;
9 Z5 d  o, k  i5 u' b+ ?) Uhaschild: node:=getfirstchild(node);
3 i6 n: ]( ?% U' X# |6 _' t2 V# |  strnode:=node.Text;
8 Q, e  n! h% E) U& ^  dm.qtree.Close;
0 L  c% X% V; v- o+ b  dm.qtree.SQL.Clear;
# H: A) X% ~9 }+ v" v  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';- q7 i4 j- l3 i( k7 i
  dm.qtree.Open;  //取得该部门下所有员工姓名
8 d; l' B$ H  z  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)& p; Y' J  _; D. O! v# N
  begin   //将所有员工姓名都作为子节点添加  G+ S& e" _% W- N1 D/ z, }
    repeat
! s% A3 Z" U. C* R    strnode:=dm.qtree.fieldbyname('empname').AsString;7 R4 n; b/ [$ h' X5 [$ a4 W
    treeview1.Items.AddChild(node,strnode);. r) E7 k- Z9 s& b* h) Y7 F/ P
    dm.qtree.Next;7 T+ I1 ~9 d0 r( B
    until dm.qtree.Eof;2 ^7 e9 {* _* p$ Q; |
  end;8 e# A  R. B* o2 ~% ], x2 C
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个) D3 m2 [9 `" H- K" N! I* h
  begin; T2 v0 y! i* `; p8 C, q+ P
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点6 n$ m% E: @0 O4 @5 X
    goto haschild;- J: v" a1 i: V6 Y' Z) V0 s
  end9 i. T0 L6 W/ c& N# D! E; ^! y
  else
# ^7 u( J, j! I2 m  begin# f  p4 n1 ~" \: C9 N) Q* ]
    if node.Index =treeview1.Items.Count then goto ok
( Z; G3 k; K7 d8 l$ B    else goto nextnode;
9 D: ^% v& N' _  Z5 Z, O! J  end;
. J# o( Z  t; h7 [9 A1 T7 Bok:null;( J- a2 b4 O: F2 L* Q, L% ?7 X( m
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-10-23 08:48 , Processed in 3.545328 second(s), 68 queries .

    回顶部