如何实现带checkbox的treeview控件,急等 如何实现带checkbox的treeview控件,急等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有,要的话留个email发给你 TreeView有Images属性不是吗?自己做三张小图片:全选中、部分选中、不选状态(直接拍下CheckBox三种状态的图片在加工一下就可以了),然后在点击事件中根据具体情况设置TTreeNodes的ImageIndex就OK了。===========学来的 [email protected][email protected]万分感谢 呵呵;估计我跟楼上是从一个地方学的;^_^;如果嫌麻烦的话就去Down一个控件,其实有些控件也是这样做的,界面上你是看不出来的. :)**************Manan Patel <[email protected]>重载TreeView的CreateParams:typeTCheckBoxTreeView = class(TTreeView)protectedprocedure CreateParams(var Params: TCreateParams); override;end;procedure TCheckBoxTreeView.CreateParams(var Params: TCreateParams);begininherited;Params.Style:=Params.Style or TVS_CHECKBOXES;{ TVS_CHECKBOXES declared in CommCtrl }end;如果要Check这个CheckBox,可以用下面的代码:function IsNodeChecked(Node :TTreeNode) :Boolean;constTVIS_CHECKED = $2000;varTvItem :TTVItem;beginTvItem.Mask := TVIF_STATE;TvItem.hItem := Node.ItemId;TreeView_GetItem(Node.TreeView.Handle, TvItem);Result := (TvItem.State and TVIS_CHECKED) = TVIS_CHECKED;end;procedure SetNodeChecked(Node :TTreeNode; Checked :Boolean);constTVIS_CHECKED = $2000;varTvItem :TTVItem;beginFillChar(TvItem, SizeOf(TvItem), 0);with TvItem do beginhItem := Node.ItemId;Mask := TVIF_STATE;StateMask := TVIS_STATEIMAGEMASK;if Checked thenTvItem.State :=TVIS_CHECKEDelseTvItem.State :=TVIS_CHECKED shr 1;TreeView_SetItem(Node.TreeView.Handle, TvItem);end;end;可以做成事件和封装成一个类:private OldState :Boolean;procedure Change(Node: TTreeNode); override;begininherited Change(Node);OldState := IsNodeChecked(Node);end;procedure Click; override;varNewState :Boolean;begininherited Click;NewState := IsNodeChecked(Self.Selected);if NewState = OldState then Exit;if (NewState) and Assigned(OnNodeChecked) then OnNodeChecked()else if (not NewState) and Assigned(OnNodeUnChecked) thenOnNodeUnChecked()// OnNodeChecked & OnNodeUnchecked will be events that you declareend; virtual stringtree,我们公司都用她。 virtual stringtree在哪里能找到???谢谢 RC的控件组中有一个checktreeview很好用 求助大牛们。小弟每晚熬到2点无果! 关于自动刷票的功能实现 fastreport 做主從報表時為什麼當從報表沒有記錄時報表不會顯示這條記錄,該怎麼解決? indy中的idhttp下载网页要实现多个同时下载怎么做? 接分啦。再次感谢。。。。。 Delphi如何提取数字证书中的项 软件打开后实现提醒功能 改变WindowsMe的壁纸(通过注册表),但是... 高分求助(DLL) stringreplace 怎么用? 请教一个关于框架为什么不能显示的问题 难到就没有套像样的全套酒店管理软件?
===========学来的
[email protected]
万分感谢
在哪里能找到???
谢谢