QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~* q+ H/ B& Z2 r# u# `& ~  D
procedure Trs.TreeView1Click(Sender: TObject);5 R2 @3 t) t% w) |$ E' e8 q7 D
var node: TTreeNode;
( `1 s% I/ I7 g- u* U5 \/ I' \    strnode:string;
2 a1 R' H" ]9 l    label ok;' e" B6 ], S+ y: Z7 x
    label haschild;
* {/ F( @  z0 g) A6 X    label nextnode;. U' \+ O3 ?- `" L  N9 S
begin9 ~0 b' j) q! ?/ V
  node:=treeview1.TopItem;
5 E4 u9 e* N: u6 v) H9 [haschild: node:=getfirstchild(node);" E- Z, N$ m. }# W
  strnode:=node.Text;' W( F( l# J$ C5 x
  dm.qtree.Close;& Z/ [) S# M1 m, D8 X' R: Q6 h( F
  dm.qtree.SQL.Clear;
' n: D- E$ A$ u* R9 r5 c  Y6 I) n  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
) ]8 [) I* X. ~7 C2 e4 p1 M6 \1 L. f  dm.qtree.Open;  //取得该部门下所有员工姓名. Z  j  ~' f( q9 I. b. B
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
! J$ ?6 u( v3 P4 B5 k$ t  begin   //将所有员工姓名都作为子节点添加
- \; c" U- x1 f# V    repeat
; n9 p$ C7 D) z9 ~6 k6 a    strnode:=dm.qtree.fieldbyname('empname').AsString;1 Z9 S/ j. s( c
    treeview1.Items.AddChild(node,strnode);  }. g4 o* x8 i) w) l% {% u* F
    dm.qtree.Next;1 \+ l1 A" I) w
    until dm.qtree.Eof;1 X# A0 w2 K. u5 L' z6 U: U4 F0 t# v
  end;. R8 X6 I7 I: a  s
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个
; M0 g5 ~8 G6 r- v& ~0 K4 E4 G  begin
% ~8 Q7 s1 }. l0 O' z6 @nextnode:    node:=node.getNextSibling;  //取得下一个同级节点/ K, w/ E6 L  B6 k
    goto haschild;# Y. H8 x# A7 x$ l/ @/ K
  end; f. I. t' O, D* q
  else! c, `' ~: I$ L  v* l( L( ?% l
  begin
2 \1 D9 W; L( Q: W" ?5 h    if node.Index =treeview1.Items.Count then goto ok5 l2 c* _5 j6 ~& p6 S
    else goto nextnode;
* _/ D$ d$ }3 W7 t  end;6 ]- F3 A8 S$ y: Y. L# q! d' f0 O
ok:null;. o* _5 \- V% |  j6 g
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-25 09:38 , Processed in 1.522902 second(s), 68 queries .

    回顶部