寻求有CkeckBox 的树形控件,如杀毒软件中选择路径的控件。 就是用的普通delphi自带的treeview即可那个检查框用的是图标,你可以用几种图标来代替显示状态 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 找不到就自己写,VCL控件(treeview,CkeckBox)代码都可以看这也需要现成就太偷懒了!:) 直接用 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;以上三步即可实现你所需要的。 直接用 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;以上三步即可实现你所需要的。 把 if nodeTemp = TreeView1.Selected then改为:if (nodeTemp <> Nil) and (nodeTemp = TreeView1.Selected) then 怎样屏蔽或取消双击树型节点的展开与收缩功能? delphi 如何引用DTS包 请详细说明 如何配置delphi进行com组件的编译 用dbgrid插入记录的时候,如何写代码使鼠标点击其它记录时无效! 如何用脚本修改SQL SERVER表中的字段的默认值?具体看里面说明?谢谢,在线等。。 用什么办法可以让我的机器变慢 报表问题,100分!!! 我想问以下语句应如何理解?? DELPHI3个问题一个是全屏,一个是设为桌面,一个是execute,绝对20分 delphi导入halcon库 急,如何求得一个n元集合中个数为m的子集? 如何把声音做天MOS数据库中?
这也需要现成就太偷懒了!:)
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;以上三步即可实现你所需要的。
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;以上三步即可实现你所需要的。
if nodeTemp = TreeView1.Selected then
改为:
if (nodeTemp <> Nil) and (nodeTemp = TreeView1.Selected) then