+ -
当前位置:首页 → 问答吧 → DELPHI中TreeList节点的问题

DELPHI中TreeList节点的问题

时间:2011-08-25

来源:互联网

我在TreeList中添加了checkbox复选框。
现在怎么样让
1:父节点的复选框未选中时子节点也不能选中.
2:当父节点的checkbox 为false 时,子节点的checkbox 同时都为FALSE.?

作者: case5166   发布时间: 2011-08-25

TRzCheckTree 直接有这个功能

作者: varick_zhong   发布时间: 2011-08-25

可否祥细点??或给个例子?我用的是CXTREELIST

作者: case5166   发布时间: 2011-08-25

其实你要的大部份功能cxTreeList都已经具备啦!只是最后一点"当父节点没选中的时候,子节点不能被选中"。这个要求好像它本身没这功能。不过可以写点代码要实现它!可以参考下面代码。
Delphi(Pascal) code

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
  cxCustomData, cxStyles, cxTL, cxTextEdit, cxTLdxBarBuiltInMenu,
  cxInplaceContainer;

type
  TForm1 = class(TForm)
    TreeList_1: TcxTreeList;
    TreeListColumn_TreeList_1Column1: TcxTreeListColumn;
    TreeListColumn_TreeList_1Column2: TcxTreeListColumn;
    procedure FormCreate(Sender: TObject);
    procedure TreeList_1NodeCheckChanged(Sender: TcxCustomTreeList;
      ANode: TcxTreeListNode; AState: TcxCheckBoxState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i,j:Integer;
  vNode:TcxTreeListNode;
begin
  TreeList_1.OptionsView.CheckGroups := True;
  TreeList_1.BeginUpdate;
  try
    TreeList_1.Clear;
    for i:=0 to 5 do
    begin
      vNode := TreeList_1.Add;
      vNode.CheckGroupType := ncgCheckGroup;
      vNode.Values[0] := IntToStr(i);
      for j:=0 to 3 do
      begin
        with vNode.AddChild do
        begin
          CheckGroupType := ncgCheckGroup;
          Values[0] := IntToStr(j);
        end;
      end;
    end;
  finally
    TreeList_1.EndUpdate;
  end;
end;

procedure TForm1.TreeList_1NodeCheckChanged(Sender: TcxCustomTreeList;
  ANode: TcxTreeListNode; AState: TcxCheckBoxState);
begin
   if not ANode.HasChildren then
   begin
    if ANode.Parent.CheckState <> cbsChecked then
       ANode.CheckState := cbsUnChecked;
   end;
end;

end.


作者: jayqiang   发布时间: 2011-08-25

TreeList_1NodeCheckChanged这个事件我怎么找不到呢??我用的是ExpressQuantumTreeList 4

作者: case5166   发布时间: 2011-08-25

1.判断当前节点的父节点Parent,为ture时不处理,否则当前节点false
2.判断当前节点,为ture时不处理,否则循环所有子节点变为false

作者: kaikai_kk   发布时间: 2011-08-25

热门下载

更多