QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
+ T8 H/ _7 n: E9 \0 Nprocedure Trs.TreeView1Click(Sender: TObject);" v. g5 m1 D9 D! j
var node: TTreeNode;& B" X, E) N0 z% ?8 a
    strnode:string;- o& |3 `* D" E9 E' q# S6 Z! L
    label ok;
' d' a; @; v) E, H3 h, R5 K2 l* t- V! J& S    label haschild;. U8 H+ B/ t) K$ }4 @' p. D
    label nextnode;
7 n8 W3 k7 R! d% |begin
& y5 C0 d: w  b5 a  {. Y& ^! C" m  node:=treeview1.TopItem;
+ Q2 H0 u: I! Ghaschild: node:=getfirstchild(node);) R+ w0 P$ t+ H* T8 B
  strnode:=node.Text;$ c+ j8 _; I1 M+ R& \2 `, j
  dm.qtree.Close;
( V9 g# n% u' E2 Z8 b) E  dm.qtree.SQL.Clear;
" U9 i) ~2 c) J1 r" v- w7 p" }5 n  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';6 N* f7 I2 H, S4 X; ?( h9 A4 B" M
  dm.qtree.Open;  //取得该部门下所有员工姓名
) E& Q0 \3 q. V' T4 m& D  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工); g4 @; D- w  J
  begin   //将所有员工姓名都作为子节点添加
  g$ J9 }. s& E9 `7 [    repeat: ^* y" P7 O  J* x- c7 D# W
    strnode:=dm.qtree.fieldbyname('empname').AsString;; w( I: C: s% p7 ^
    treeview1.Items.AddChild(node,strnode);
3 ^: g; p, ?2 {4 t2 \. ^    dm.qtree.Next;  I# w2 Q. m! _# r# S
    until dm.qtree.Eof;$ g$ l6 |- J( s5 }
  end;
' [$ }. k9 B3 q  A) K5 s  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个. O7 J# k" {9 w+ o  Y- ?3 p
  begin
. {+ O; t6 \0 S; I+ Jnextnode:    node:=node.getNextSibling;  //取得下一个同级节点
) C& A5 F5 u& P/ x! ~$ w+ b+ ~. m    goto haschild;
# x: K" V' J) |6 ?/ i! J7 y! O3 i  end
% X- F6 T! h8 Q! [; `0 e9 ^" q  else- E& D3 v% a. }8 B2 S. i
  begin$ s" G" P3 S" u4 k
    if node.Index =treeview1.Items.Count then goto ok
. Y& p8 H0 N$ o/ Z- U% D6 [( r    else goto nextnode;4 B$ A4 U) K! c
  end;7 f- v( o+ V2 X7 l+ J+ V9 C1 o
ok:null;# ]+ _+ V; B3 d8 P+ `* 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-7-21 01:41 , Processed in 0.430186 second(s), 68 queries .

    回顶部