QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~6 S: Z" W' g0 N7 t; X; A
procedure Trs.TreeView1Click(Sender: TObject);* g. [# _7 A8 B; [3 U7 e: F
var node: TTreeNode;
0 r$ \( I6 _  R3 X' j" l    strnode:string;% K9 d0 b) M+ G' e# y
    label ok;
7 G# {; n! s6 C9 c    label haschild;, J6 V5 \6 L7 A4 e( u
    label nextnode;9 f3 j1 T6 a5 v- s1 r' n+ i* O
begin( t0 k' [. D7 h% L, B/ y3 q
  node:=treeview1.TopItem;# J' a+ e; ~3 j* N  j2 O
haschild: node:=getfirstchild(node);
: r/ D. S' z1 w9 a1 ]  strnode:=node.Text;
) {! l! y$ o! M8 u0 w& Q. B) M  dm.qtree.Close;5 g( I# B$ |$ Y; P0 O% n% U1 V
  dm.qtree.SQL.Clear;
6 F+ T( y. d1 o7 r$ A  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
# P" o8 M  O6 R  dm.qtree.Open;  //取得该部门下所有员工姓名6 C( |& j' V' g% u! l+ e3 |
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)* I6 I% a5 K; x! Q
  begin   //将所有员工姓名都作为子节点添加8 d6 w4 l  ^/ d! j
    repeat0 [+ H8 t9 G8 e9 I, P' p7 K& c
    strnode:=dm.qtree.fieldbyname('empname').AsString;. ?% a" e/ r' b8 J* L$ j. a: V
    treeview1.Items.AddChild(node,strnode);
7 k% g) Y; L5 v& F    dm.qtree.Next;6 @. w3 x- J  \( q8 C/ J6 Q5 Z
    until dm.qtree.Eof;! c! v2 I0 S" i( ?9 Y0 H
  end;1 G" X, R2 `( O- M0 w, u
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个( I$ G. Y( w6 ~3 g9 b
  begin. R5 T7 t  M& ]; l% J" E* Q7 f$ y' J
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点- R( D$ N' r9 a, Y
    goto haschild;) f+ h7 q1 U% _- P( a
  end7 S! }  G" |# S
  else$ z9 q. E( P( f' t5 W6 f8 s
  begin
" i# d& H! R% |    if node.Index =treeview1.Items.Count then goto ok) {! y$ l8 c% g% R8 O6 r5 _
    else goto nextnode;
; g# H3 D3 p- m0 S  end;
7 p7 P$ q! c# t( Y1 Sok:null;
$ ^: k! T8 y$ l6 Z) Mend;
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%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

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

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-31 16:13 , Processed in 0.233991 second(s), 67 queries .

    回顶部