CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

寻求有CkeckBox 的树形控件,如杀毒软件中选择路径的控件。

楼主888789(yf888789)2002-06-01 13:28:33 在 Delphi / VCL组件开发及应用 提问

寻求有CkeckBox   的树形控件,如杀毒软件中选择路径的控件。 问题点数:20、回复次数:6Top

1 楼universe(孤帆)回复于 2002-06-01 13:32:50 得分 5

就是用的普通delphi自带的treeview即可  
  那个检查框用的是图标,你可以用几种图标来代替显示状态Top

2 楼zhangking(网眼-why100000.com)回复于 2002-06-01 13:55:55 得分 0

有没有真正实现该功能的控件啊?Top

3 楼taxi(当时明月在,曾照彩云归)回复于 2002-06-01 13:58:04 得分 0

用孤大爷推荐方法也很简单呀。Top

4 楼ehom(?!)回复于 2002-06-01 14:00:27 得分 0

找不到就自己写,VCL控件(treeview,CkeckBox)代码都可以看  
  这也需要现成就太偷懒了!:)Top

5 楼kyee(浪子阿鹏)回复于 2002-06-01 15:55:56 得分 15

直接用   TTreeView   和   TImageList   控件就行了,操作如下:  
  1.   在   ImageList1   中加三个图标,未选择,已选择,灰选择。  
  2.   设置   TreeView1.Images   :=   ImageList1;  
  3.   在   TreeView1.OnClick   事件中写:  
   
  const  
        ImageIndex_NoChecked   =   0;         //   未选择  
        ImageIndex_IsChecked   =   1;         //   已选择  
        ImageIndex_GrayChecked   =   2;     //   灰选择  
   
  var  
        boolNeedGrayChecked:   Boolean   =   False;     //   是否需要灰选择  
   
  //   TreeView1   的   OnClick   事件过程  
  procedure   TForm1.TreeView1Click(Sender:   TObject);  
  var  
        pointPos:   TPoint;  
        nodeTemp:   TTreeNode;  
  begin  
        GetCursorPos(pointPos);  
        pointPos   :=   TreeView1.ScreenToClient(pointPos);  
        nodeTemp   :=   TreeView1.GetNodeAt(pointPos.x,   pointPos.y);  
        if   nodeTemp   =   TreeView1.Selected   then  
              case   nodeTemp.ImageIndex   of  
                    ImageIndex_NoChecked:  
                          if   boolNeedGrayChecked   then  
                                nodeTemp.ImageIndex   :=   ImageIndex_GrayChecked  
                          else  
                                nodeTemp.ImageIndex   :=   ImageIndex_IsChecked;  
   
                    ImageIndex_IsChecked:  
                          nodeTemp.ImageIndex   :=   ImageIndex_NoChecked;  
   
                    ImageIndex_GrayChecked:  
                          if   boolNeedGrayChecked   then  
                                nodeTemp.ImageIndex   :=   ImageIndex_IsChecked  
                          else  
                                nodeTemp.ImageIndex   :=   ImageIndex_NoChecked;  
              end;  
  end;  
   
  以上三步即可实现你所需要的。  
  Top

6 楼kyee(浪子阿鹏)回复于 2002-06-01 15:57:19 得分 0

直接用   TTreeView   和   TImageList   控件就行了,操作如下:  
  1.   在   ImageList1   中加三个图标,未选择,已选择,灰选择。  
  2.   设置   TreeView1.Images   :=   ImageList1;  
  3.   在   TreeView1.OnClick   事件中写:  
   
  const  
        ImageIndex_NoChecked   =   0;         //   未选择  
        ImageIndex_IsChecked   =   1;         //   已选择  
        ImageIndex_GrayChecked   =   2;     //   灰选择  
   
  var  
        boolNeedGrayChecked:   Boolean   =   False;     //   是否需要灰选择  
   
  //   TreeView1   的   OnClick   事件过程  
  procedure   TForm1.TreeView1Click(Sender:   TObject);  
  var  
        pointPos:   TPoint;  
        nodeTemp:   TTreeNode;  
  begin  
        GetCursorPos(pointPos);  
        pointPos   :=   TreeView1.ScreenToClient(pointPos);  
        nodeTemp   :=   TreeView1.GetNodeAt(pointPos.x,   pointPos.y);  
        if   nodeTemp   =   TreeView1.Selected   then  
              case   nodeTemp.ImageIndex   of  
                    ImageIndex_NoChecked:  
                          if   boolNeedGrayChecked   then  
                                nodeTemp.ImageIndex   :=   ImageIndex_GrayChecked  
                          else  
                                nodeTemp.ImageIndex   :=   ImageIndex_IsChecked;  
   
                    ImageIndex_IsChecked:  
                          nodeTemp.ImageIndex   :=   ImageIndex_NoChecked;  
   
                    ImageIndex_GrayChecked:  
                          if   boolNeedGrayChecked   then  
                                nodeTemp.ImageIndex   :=   ImageIndex_IsChecked  
                          else  
                                nodeTemp.ImageIndex   :=   ImageIndex_NoChecked;  
              end;  
  end;  
   
  以上三步即可实现你所需要的。  
  Top

7 楼kyee(浪子阿鹏)回复于 2002-06-01 16:20:38 得分 0

把    
  if   nodeTemp   =   TreeView1.Selected   then  
  改为:  
  if   (nodeTemp   <>   Nil)   and   (nodeTemp   =   TreeView1.Selected)   then  
  Top

相关问题

  • 如何获取树形控件中鼠标点击位置的路径?
  • 树形控件的问题
  • 树形控件的问题
  • 请教树形控件
  • 树形控件的问题
  • 不能正确更新树形控件。
  • 树形控件的一个问题!!!
  • 用SDK如何做出树形控件?
  • 请教树形控件的用法
  • 请问怎么用树形控件

关键词

  • 控件
  • 选择
  • nodetemp
  • imageindex
  • pointpos
  • ckeckbox
  • boolneedgraychecked
  • graychecked
  • treeview
  • ischecked

得分解答快速导航

  • 帖主:888789
  • universe
  • kyee

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo