QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~; W+ t6 {5 h& A; Z2 W  k; ]
procedure Trs.TreeView1Click(Sender: TObject);
4 x2 H1 q* H9 lvar node: TTreeNode;
, {' S9 V. O* I- {/ u    strnode:string;
; f. j  _1 _0 X* b    label ok;
0 b7 n: Z5 k) ~6 Y9 l' d7 z2 K- Y    label haschild;+ i! ~/ A" F& Q9 B  w9 a0 d, i
    label nextnode;
2 I9 [8 Y  H  I! Y* F  i7 A* R% dbegin
3 a+ @! L4 }  ^3 X/ v) h8 i  node:=treeview1.TopItem;6 h) f+ y8 @0 V. H2 F
haschild: node:=getfirstchild(node);
7 f$ L+ P; B$ t/ g: \4 k& Z# R6 s  strnode:=node.Text;
5 o" |% g; p8 F7 f. M8 f5 t3 a$ w  dm.qtree.Close;: |. @, D: Q3 p' u7 k; z$ d4 s
  dm.qtree.SQL.Clear;
, h3 c9 S& L3 O  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';3 F) s* Q- s$ s6 h% W
  dm.qtree.Open;  //取得该部门下所有员工姓名- O) w: c; `* W
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
: G  A, n' }% s6 b  begin   //将所有员工姓名都作为子节点添加  I# a; y8 A8 L- e$ Q! y% o. z
    repeat
5 k0 x' i# O7 S+ H- U5 c    strnode:=dm.qtree.fieldbyname('empname').AsString;. z: a+ C5 j8 a# P3 a+ T! |
    treeview1.Items.AddChild(node,strnode);
) N6 n  _& ^* C. o  z! V1 J2 g* ~    dm.qtree.Next;
1 b9 B" N8 L" w9 k$ D    until dm.qtree.Eof;
: D7 \7 K# R5 `) q  end;
* H/ f$ h% H0 v( X+ c! ^' C  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个+ a- D; m) s; {3 ~4 W, ~+ _
  begin% r4 r5 `" j  _% I/ X% ~7 f( y
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点. W, J8 x6 Q$ ?: _* H4 ?
    goto haschild;4 B' q& K2 l/ S7 ]3 D3 d
  end5 @* k& Q/ x. I  W7 _
  else# R% A- g' K# b4 y$ V
  begin) J3 c" X; T/ s  ~. V. H, h7 J0 S
    if node.Index =treeview1.Items.Count then goto ok& }+ u( A* }% `7 k3 P6 \
    else goto nextnode;* a& s5 ]( G6 h* t' _9 U0 F# L: {
  end;
1 I6 d. s9 u6 }3 C# D& D4 c$ bok:null;, q0 t6 [6 |& v& c( y+ ~0 ?4 d4 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-4-20 20:29 , Processed in 0.452274 second(s), 68 queries .

    回顶部