QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~! [( |/ p- j" l1 e8 B
procedure Trs.TreeView1Click(Sender: TObject);
) |- j3 q* a; w: W( F6 uvar node: TTreeNode;- x$ W! T/ p+ u# Y9 M" b9 \
    strnode:string;2 B( b% H( Z" h, S1 y' q0 ^" }  i
    label ok;
* }% h4 D& I5 x    label haschild;
0 p+ w2 }2 x  [' u    label nextnode;
/ P/ h' ]1 i8 b. Nbegin7 x* Z4 r) L- n- F" q; [
  node:=treeview1.TopItem;
5 |* E2 A/ e: Z: r" }- L( c" Vhaschild: node:=getfirstchild(node);
5 U6 t- ?( d8 l2 j/ b! _+ u) k  strnode:=node.Text;4 {, {) S5 A2 m
  dm.qtree.Close;% n& b9 j2 T' k
  dm.qtree.SQL.Clear;
, o# l1 B0 t+ z  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
! F6 [5 `0 k& j( S) z  dm.qtree.Open;  //取得该部门下所有员工姓名: T* D% k+ h$ o: W# A2 u7 d" R
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)$ o% z6 ^5 ^# m& A  V2 {( i
  begin   //将所有员工姓名都作为子节点添加  J+ F. f6 F3 X/ X! H( K
    repeat" w. r( {- h- k$ d" g
    strnode:=dm.qtree.fieldbyname('empname').AsString;
9 p9 ^) Y& e( C! d0 e    treeview1.Items.AddChild(node,strnode);! H  S* k+ F6 D3 t# Y7 E) D( {
    dm.qtree.Next;  m- E) i. O) S% Q8 A  X& [- K& U
    until dm.qtree.Eof;
( q* F' u3 `6 Y* j0 Z' d; C  end;
' I* f- e! v/ H  ]  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个
& r( ^: j; b5 L* K, D! @" P; s  begin" q2 x# W" S% _0 }% A# `
nextnode:    node:=node.getNextSibling;  //取得下一个同级节点
/ |4 @- g# d5 G7 K2 p: p0 y    goto haschild;
* D' q3 T  Q1 H4 k- t9 s  end6 Z6 G' D" Y& m' l# W
  else
% ?5 |/ a6 D& O& ~+ R  begin  o/ f5 k4 N- ?1 q6 k
    if node.Index =treeview1.Items.Count then goto ok% s: b% J) O6 J. D
    else goto nextnode;
9 g& G4 }( V' y* }5 U& L& F7 Z  end;
0 l8 d5 @' O$ {, R* `ok:null;8 T3 j0 ?& N- `* R( j; V0 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-10-23 09:56 , Processed in 1.317497 second(s), 67 queries .

    回顶部