QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
, h/ ]% m% X2 v! s6 ]procedure Trs.TreeView1Click(Sender: TObject);2 A0 d8 p' \! g; o, ]
var node: TTreeNode;* m7 B3 _- H9 ]  D1 B
    strnode:string;& U! r3 O8 E  y8 {1 D. [) ?; [
    label ok;' F4 U6 {* V. `8 C, ~/ V- ?
    label haschild;
' _' t, k  k/ K$ L6 @    label nextnode;4 r2 [: Y. i( g" a
begin& U: o4 @/ R( Y
  node:=treeview1.TopItem;! e. ^* L+ x7 P! w! l% W/ i
haschild: node:=getfirstchild(node);, v% z6 \$ T/ v( X; M
  strnode:=node.Text;1 e! r9 J2 ^8 [, C& P, e
  dm.qtree.Close;
. r7 {: \& g+ Y: c' k) h. S* }  dm.qtree.SQL.Clear;
3 R- p$ {" r+ I4 T2 N  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';# n* r. }; h+ i1 y" |% {
  dm.qtree.Open;  //取得该部门下所有员工姓名
; c, _$ G4 u- M' v  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
5 h  K6 P3 b0 p& \! \  p  begin   //将所有员工姓名都作为子节点添加4 C. u# J. [' A" D) S
    repeat$ a7 w, k. \: U5 O" [+ b: K
    strnode:=dm.qtree.fieldbyname('empname').AsString;
/ d0 m5 i  t$ l1 u0 a  Z5 N0 Z0 r    treeview1.Items.AddChild(node,strnode);
* }" {. P! @% _5 U% _4 G    dm.qtree.Next;8 E4 j' A; g! v' g
    until dm.qtree.Eof;5 [) Q0 p+ b4 \+ f" [. a
  end;2 d1 G. e) _4 M8 |8 ]  u
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个9 P- B! l2 C9 z; ?8 i$ D9 u
  begin8 c( A$ r0 a0 c7 h% A. ~
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点- z. I0 O$ o7 R$ g$ X
    goto haschild;
3 N" \2 [- M' k* w/ C8 E8 A- J  end
. @; I7 i' }/ k& [. L  else* r& m" P7 H* b! E* ]: h
  begin3 S8 _5 ^9 u3 S# K
    if node.Index =treeview1.Items.Count then goto ok
5 k6 o2 v& M5 W& P' Z# ]    else goto nextnode;# w2 S& M, ?+ ^# e( J: q
  end;3 ]  i6 s& O$ h: A
ok:null;
  ~4 k, O+ A5 `$ g2 U% X/ G5 |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-24 06:22 , Processed in 0.598071 second(s), 67 queries .

    回顶部