QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |正序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~3 W" H$ Y6 D; v: D6 d2 o
procedure Trs.TreeView1Click(Sender: TObject);
4 H; s  J( k8 pvar node: TTreeNode;' E6 E3 e1 X9 g( a" o5 `
    strnode:string;1 o/ Y4 g/ x  T- b0 _: o( L
    label ok;
1 R( R9 l" E( z7 P+ ~    label haschild;
; v; Y1 \7 w3 W/ r( f    label nextnode;! D( v! }  l6 K+ i5 H% n8 \
begin
+ ~$ h6 H/ @- z  node:=treeview1.TopItem;' a+ K' T' f! L
haschild: node:=getfirstchild(node);
8 t8 p. i# I- U) w' U  strnode:=node.Text;3 B8 P0 @8 S  T4 r- f/ C' v  M" K
  dm.qtree.Close;
7 i( u( y% F  o9 b& ~( m, ^& w4 @8 Z  dm.qtree.SQL.Clear;
, A0 X+ k7 l8 _! ?, T  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
' ^0 B9 h* h) n9 ?5 b( a) E  dm.qtree.Open;  //取得该部门下所有员工姓名) D2 w/ g, }8 B. j% t
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
, u, g* F( C# T. p7 j- i  begin   //将所有员工姓名都作为子节点添加
. t" B1 Z# m8 `# r4 Z! x    repeat0 h& y* Q) B1 |
    strnode:=dm.qtree.fieldbyname('empname').AsString;
0 Q7 E. J- T4 Y" e7 |    treeview1.Items.AddChild(node,strnode);
1 N) E0 q9 l2 y5 O    dm.qtree.Next;4 w' I3 \: ]/ N2 t7 [$ B/ L  B
    until dm.qtree.Eof;
+ u1 H* v- G; }+ ]+ m0 Z) I  end;" Q; J$ o# J: M7 k! X9 U2 i
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个
: e& _! w4 n2 U8 `& W& n- B: t  begin" }3 M4 `; d; G1 A
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点, n+ l& X6 q- g3 X: T: M9 _0 P9 ]
    goto haschild;- k* `, G; b3 L) N; w+ G
  end
$ l9 [. V3 x4 `) J  n# U2 b. C  else1 x5 K# H- g4 s9 A8 L6 _3 x( |7 C6 j
  begin
. {( L1 W+ b2 [- v+ N    if node.Index =treeview1.Items.Count then goto ok
# y, n5 o( n# s) B$ M    else goto nextnode;: F7 n% x1 d5 d+ I' J
  end;
% e% U- f1 T" K. s, |2 aok:null;
  F; m. e0 L. g$ uend;
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
xtmlj        

0

主题

2

听众

95

积分

升级  94.74%

该用户从未签到

新人进步奖

回复

使用道具 举报

ilikenba 实名认证       

1万

主题

49

听众

2万

积分

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

    [LV.10]以坛为家III

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

    群组万里江山

    群组sas讨论小组

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

    群组C 语言讨论组

    群组Matlab讨论组

    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-12 04:23 , Processed in 0.457786 second(s), 68 queries .

    回顶部