DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: qq421962914
今日帖子: 36
在线用户: 19
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 leon7808 (烟灰) ★☆☆☆☆ -
普通会员
2003/12/24 14:36:11
标题:
请教高手,关于TreeView的排序有非常有趣的问题 浏览:1447
加入我的收藏
楼主: 我用一个TreeView显示表中的字段值

表如下:

编号    名称     类型

0       单位      0
001     部门1     1
00101   班组1     2
00102   班组2     2
00103   班组3     2
002     部门2     1

可是经过ADOQuery的SQL之后
SQL = Select * from GZ_Unit where 类型<3 order by 编号
在TreeView中的顺序如下

单位
 部门1
  班组3
  班组2
  班组1
 部门2

请教为什么会这样?  有什么解决办法吗?  谢谢


----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/24 14:54:58
1楼: 先说说看你自己是怎么把他 生成到 树中的?
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 leon7808 (烟灰) ★☆☆☆☆ -
普通会员
2003/12/24 15:01:01
2楼: 偶的显示代码

Procedure ShowUnitTV;
Var
  DWNode,BMNode,BZNode: TTreeNode ;
begin
  DWNode := nil ;
  BMNode := nil ;
  Main_Form.Unit_TV.Items.Clear ;
  GZ_DM.Unit_Q.Close ;
  GZ_DM.Unit_Q.SQL.Clear ;
  GZ_DM.Unit_Q.SQL.Add('Select * from GZ_Unit where 类型<3 order by 编号');
  GZ_DM.Unit_Q.Open ;
  if GZ_DM.Unit_Q.RecordCount > 0 then
  begin
    GZ_DM.Unit_Q.First ;
    While not GZ_DM.Unit_Q.Eof do
    begin
      case GZ_DM.Unit_Q.FieldByName('树层').AsInteger of
      0: begin
           DWNode := Main_Form.Unit_TV.Items.Add(nil,GZ_DM.Unit_Q.FieldByName('名称').AsString) ;
           DWNode.SelectedIndex := 0 ;
           DWNode.ImageIndex := 1 ;
         end;
      1: begin
           BMNode := Main_Form.Unit_TV.Items.AddChild(DWNode,GZ_DM.Unit_Q.FieldByName('名称').AsString) ;
           BMNode.SelectedIndex := 0 ;
           BMNode.ImageIndex := 2 ;
         end;
      2: begin
           BZNode := Main_Form.Unit_TV.Items.AddChildFirst(BMNode,GZ_DM.Unit_Q.FieldByName('名称').AsString) ;
           BZNode.SelectedIndex := 0 ;
           BZNode.ImageIndex := 3 ;
         end;
      end;
      GZ_DM.Unit_Q.Next ;
    end;
  end;
  DWNode.Expanded := True ;
end;

----------------------------------------------
-
作者:
男 leon7808 (烟灰) ★☆☆☆☆ -
普通会员
2003/12/24 15:05:29
3楼: 哈哈~~ 我知道了 BZNode那里的ADDChild打成了ADDChildFirst

呵  谢谢BIOS  :)
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/24 15:09:50
2楼: 很正常啊
此帖子包含附件:
JPEG 图像
大小:4.1K
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 leon7808 (烟灰) ★☆☆☆☆ -
普通会员
2003/12/24 15:14:21
4楼: BIOS

再问一下,我要检验Node.Text的输入,检验代码应该放在Edited还是哪里?

如果用户在EditText过程中输入了字符就会触发Edited

但是不输入直接回车就不会触发Edited,那检验代码应该放在哪?
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行97.65625毫秒 RSS