QQ登录

只需要一步,快速开始

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

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

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

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
' b4 m9 s3 d! Rprocedure Trs.TreeView1Click(Sender: TObject);: h- h6 W+ N, O: V
var node: TTreeNode;3 F3 R3 A# l' l4 m
    strnode:string;
" [/ ~6 B. N0 R) @4 G    label ok;
7 W+ C+ P7 u$ S    label haschild;. M' |$ g- w. i/ N" s2 T1 Y& j" M
    label nextnode;% a' i. {' |6 ?! K/ ~: l' O) ]0 J0 q+ X
begin- r4 u1 R* M( l
  node:=treeview1.TopItem;; |9 m: f: [; W9 c$ x) W" `* B
haschild: node:=getfirstchild(node);2 z$ X- B* r( W5 f
  strnode:=node.Text;
/ H, W: K) j4 r4 v% h% D  dm.qtree.Close;
% M: X( i- q9 {5 R- D  T  dm.qtree.SQL.Clear;
: x4 z) o/ I" d# `( z  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
% f: o: p9 `" e. D5 B. @( \; P8 F  dm.qtree.Open;  //取得该部门下所有员工姓名6 A) k4 y8 Z" M& U0 P
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)- o! I+ `4 v# T0 W& V" ?5 K
  begin   //将所有员工姓名都作为子节点添加
/ n. S: P# _/ l    repeat
8 O& [4 y' V  M2 v% [- }; d    strnode:=dm.qtree.fieldbyname('empname').AsString;
/ a0 w, v- u/ K4 i    treeview1.Items.AddChild(node,strnode);  f7 h- L$ E$ p# M
    dm.qtree.Next;( g: F. r' Y( e% P
    until dm.qtree.Eof;
5 W, R3 L+ h, G% F" ]  end;
( F, _4 B* u3 R  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个
( Q, j/ r. b! G  begin
9 B$ g; B2 z: |2 u: m: onextnode:    node:=node.getNextSibling;  //取得下一个同级节点
9 B, ^& f! H' h; {    goto haschild;0 t1 h1 V1 s4 f$ E5 M
  end
0 L# C( r6 L5 @( M+ P/ f1 w  else3 h, p! R* y% X! _
  begin+ C6 Y  D+ u1 G/ P+ T
    if node.Index =treeview1.Items.Count then goto ok
' x$ s  M/ `- L6 M    else goto nextnode;
( @2 F- J) b- D  N- ]: {  end;
  N1 b: j! |% v9 f! Ook:null;
; Y/ w. `/ y7 y# Zend;
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:38 , Processed in 0.975215 second(s), 67 queries .

    回顶部