采用递归方法为cxDBtreelist (Devexpress VCL) 控件增加复选框

  • 格式:pdf
  • 大小:197.17 KB
  • 文档页数:2

采用递归方法为cxDBtreelist (Devexpress VCL) 控件增加复选框
cxDBtreelist控件功能强大,运用灵活,但不知什么原因,Devexpress为cxTreelist控件(非绑定模式)设计了可以自动级联选择的复选框,但是由cxTreelist继承而来的cxDBtreelist却未提供这一功能。

下面的示例我们采用递归编程的方法,遍历每一个节点,使cxDBtreelist 控件也可以实现自动级联选择的复选框
程序运行后界面如下:
程序如下:
//此子程序通过递归方式,遍历每个子节点实现复选
procedure CheckedSubnodes(ANode:TcxTreeListNode);
var
i:Integer;
begin
for i := 0 to ANode.Count -1 do
begin
aNode.CheckGroupType:=ncgCheckGroup;
if aNode.HasChildren then
begin
CheckedSubnodes(aNode.Items[i]); //递归
end;
end;
end;
procedure TreelistShowCheckbox(componentObj:TcxDBTreeList); begin
//设定cxdbtreelist控件的视图显示方式为“可复选”模式componentObj.OptionsView.CheckGroups := True;
//调用遍历子程序,设置视图中的每个节点为带复选框方式 CheckedSubnodes(componentObj.Root);
end;
//窗体显示时,调用TreelistShowCheckbox方法
procedure TmainForm.FormShow(Sender: TObject);
begin
TreelistShowCheckbox(cxDBTreeList1);
end;。