学习 TTreeView [16] - 给 TTreeView 添加复选框 (回复 "丁永其" 的问题)
2008-05-15 17:12
477 查看
问题来源: http://www.cnblogs.com/del/archive/2008/05/15/1114450.html#1199402
本例效果图:
![](http://images.cnblogs.com/cnblogs_com/del/134145/o_85161.gif)
本例效果图:
![](http://images.cnblogs.com/cnblogs_com/del/134145/o_85161.gif)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls; type TForm1 = class(TForm) TreeView1: TTreeView; Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses CommCtrl; //让 TreeView 带有复选框 procedure TForm1.FormCreate(Sender: TObject); var H: HWND; begin H := TreeView1.Handle; SetWindowLong(H, GWL_STYLE, GetWindowLong(H, GWL_STYLE) or TVS_CHECKBOXES); {下面的代码只是给 TreeView 添加内容} with TreeView1 do begin Align := alLeft; Items.Add(nil, 'AAA'); Items.Add(nil, 'BBB'); Items.Add(nil, 'CCC'); Items.AddChild(Items[2], '111'); Items.AddChild(Items[2], '222'); Items.AddChild(Items[2], '333'); end; end; //列举带有复选框的项 procedure TForm1.Button1Click(Sender: TObject); var Node: TTreeNode; TVI: TTVItem; begin for Node in TreeView1.Items do begin TVI.mask := TVIF_STATE; TVI.hItem := Node.ItemId; TreeView_GetItem(TreeView1.Handle, TVI); if TVI.state and $2000 = $2000 then ShowMessage(Node.Text); end; end; //取消所有选中(这是后来补充的, 所以效果图上没有) procedure TForm1.Button2Click(Sender: TObject); var Node: TTreeNode; TVI: TTVItem; begin for Node in TreeView1.Items do begin TVI.mask := TVIF_STATE; TVI.hItem := Node.ItemId; TVI.stateMask := TVIS_STATEIMAGEMASK; TVI.state := $2000 shr 1; TreeView_SetItem(TreeView1.Handle, TVI); end; end; //选中所有(这是后来补充的, 所以效果图上没有) procedure TForm1.Button3Click(Sender: TObject); var Node: TTreeNode; TVI: TTVItem; begin for Node in TreeView1.Items do begin TVI.mask := TVIF_STATE; TVI.hItem := Node.ItemId; TVI.stateMask := TVIS_STATEIMAGEMASK; TVI.state := $2000; TreeView_SetItem(TreeView1.Handle, TVI); end; end; end.
相关文章推荐
- 学习 TTreeView [15] - 连接数据库 (作为给 "丁永其" 和 "DELPHI万岁" 两位朋友的回复)
- Java 学习笔记16:用ThreadLocal解决多线程安全问题
- 一步步学习SPD2010--第三章节--处理列表和库(16)----给内容类型添加文档模板
- 关于bootstrap的treeview不显示多选(复选框)的问题,以及联动选择的问题,外加多选后取值
- 给 TStringGrid 添加鼠标拖动功能 - 回复 "dxx" 的问题
- 给 Edit 两个可选值 - 回复 "delphi学习中" 的问题
- 【Java学习之代码学习】 Prog16_求5!的问题
- [VB.NET]VB中treeView问题,添加节点问题
- treeview问题.每个结点包含多个值的实现。(添加、删除、拖拉、连接数据库等
- Elastic学习第一天遇到的问题以及添加的一些操作
- 给 TComboBox 添加图标 - 回复 "heyongan" 的问题
- supermap学习系列之silverlight--添加可拖拽的定位图钉(方法二之超图自带类(Pushpin、InfoWindow)) 续 解决上一篇的问题
- 【iOS开发学习】关于在TableView里添加搜索的问题。
- 关于C# winform treeview 的两个问题(点击空白处的时间响应和复选框选择问题)
- 给TreeView添加复选框
- silverlight treeview 中添加复选框实现实现选择父节点,其下的子节点全部选中:
- C#开发学习笔记:向Dev控件库中的GridControl添加自定义复选框
- iOS学习笔记-workspace添加工程时只有一个proj文件问题
- Objective-C基础教程学习遇到的小问题(不断添加)
- ios学习之——ios6之后UITableViewCell添加子视图所遇到的问题