QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
8 x& U4 e. v/ ?" jprocedure Trs.TreeView1Click(Sender: TObject);  [( W" Q; Q3 I- O6 A& ]
var node: TTreeNode;6 ]4 }& C8 g& d& T2 M
    strnode:string;
: m, {: |( l5 R% L    label ok;
; O( a" |8 q* O    label haschild;. O6 G, {8 M  I7 L+ Z2 T' W7 M$ `+ }
    label nextnode;) J6 X# x5 ?* p5 H0 N" ]" L  ^
begin
8 E; N9 r) H- O/ v) \4 y  node:=treeview1.TopItem;% _! z8 @  G2 V# w0 _8 a: @# m
haschild: node:=getfirstchild(node);8 r' P# Z( W& a! b; u0 ~% G" t" x
  strnode:=node.Text;
/ z2 c6 m( f7 t; M  dm.qtree.Close;
" b' c+ f" v7 Y0 L: K9 V9 f  dm.qtree.SQL.Clear;
3 B* s2 w* s4 L) W+ T9 e6 x7 \6 n5 k  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
* N7 o* W. g) F. u0 C9 s  dm.qtree.Open;  //取得该部门下所有员工姓名- C' O" @4 Q, G; {' [/ I
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
3 E$ V' n: ^- g' e7 T3 i+ C$ R  begin   //将所有员工姓名都作为子节点添加0 C4 w1 d" z6 Y; e
    repeat1 r6 T5 \% }. u( u- L: v) H8 V& e/ f
    strnode:=dm.qtree.fieldbyname('empname').AsString;  x# w/ a& |* p- @% U. Y
    treeview1.Items.AddChild(node,strnode);! ?* o0 T0 I4 E% Y5 O. ?6 B
    dm.qtree.Next;- N) x9 S/ U) Z1 R
    until dm.qtree.Eof;* {$ L1 u1 f' k4 t1 r! N+ o, K
  end;
) @# J& {! ]* x7 i  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个) \. P  B7 T, m1 T" {8 L
  begin
7 O4 Y* Q; U* {3 |nextnode:    node:=node.getNextSibling;  //取得下一个同级节点
! Y  ?7 Q/ l2 ?# g$ a) F5 C# w    goto haschild;
$ w6 J" T. m- J: |8 y% F  end
: M, y6 H+ e$ [- e  p& p3 S  else! n  e3 i9 Z7 D
  begin
3 m' n" L: y) t6 `2 |" p    if node.Index =treeview1.Items.Count then goto ok6 V/ D' ?* P; g0 |/ R* ^2 X% E; z
    else goto nextnode;
0 q( u+ H. S! t: s: v/ ]6 X' o% }  end;
# Y, @8 T9 Z! ?2 Y) ]6 Bok:null;
0 G4 _4 c; d: q  T. M3 l$ Qend;
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-28 08:01 , Processed in 0.742162 second(s), 68 queries .

    回顶部