RzCheckTree基本使用

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  //循环读取勾选节点代码及内容
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].StateIndex = 2 then
    begin
      //VarToStr(RzCheckTree1.Items[i].Index);  //读取节点标识序号
      //RzCheckTree1.Items[i].Text;             // 读取节点值
      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
    end;

//    另一种判断方式
//    if RzCheckTree1.ItemState[i] = csChecked then
//    begin
//      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
//    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //展开全部节点
  RzCheckTree1.FullExpand;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  //关闭全部节点
  RzCheckTree1.FullCollapse;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  i: Integer;
begin
  //全部选择
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    RzCheckTree1.Items[i].StateIndex := 2;
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  i: Integer;
begin
  //全部取消选择
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    RzCheckTree1.Items[i].StateIndex := 1;
  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
  i: Integer;
begin
  //反选
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].StateIndex = 1 then
      RzCheckTree1.Items[i].StateIndex := 2
    else
      RzCheckTree1.Items[i].StateIndex := 1;
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
var
  i: Integer;
begin
  //读取全部父节点
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].Level = 0 then
      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
  end;
end;

procedure TForm1.Button8Click(Sender: TObject);
var
  i: Integer;
begin
  //读取全部第二级子节点
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].Level = 1 then
      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
  end;
end;

http://www.cnblogs.com/win32pro
http://www.win32.cn

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  //循环读取勾选节点代码及内容
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].StateIndex = 2 then
    begin
      //VarToStr(RzCheckTree1.Items[i].Index);  //读取节点标识序号
      //RzCheckTree1.Items[i].Text;             // 读取节点值
      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
    end;

//    另一种判断方式
//    if RzCheckTree1.ItemState[i] = csChecked then
//    begin
//      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
//    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //展开全部节点
  RzCheckTree1.FullExpand;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  //关闭全部节点
  RzCheckTree1.FullCollapse;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  i: Integer;
begin
  //全部选择
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    RzCheckTree1.Items[i].StateIndex := 2;
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  i: Integer;
begin
  //全部取消选择
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    RzCheckTree1.Items[i].StateIndex := 1;
  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
  i: Integer;
begin
  //反选
  //StateIndex 1:unchecked(未选择) 2:checked(选择)  3:indeterminate(不确定的)
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].StateIndex = 1 then
      RzCheckTree1.Items[i].StateIndex := 2
    else
      RzCheckTree1.Items[i].StateIndex := 1;
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
var
  i: Integer;
begin
  //读取全部父节点
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].Level = 0 then
      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
  end;
end;

procedure TForm1.Button8Click(Sender: TObject);
var
  i: Integer;
begin
  //读取全部第二级子节点
  for i := 0 to RzCheckTree1.Items.Count - 1 do
  begin
    if RzCheckTree1.Items[i].Level = 1 then
      Memo1.Lines.Add(RzCheckTree1.Items[i].Text);
  end;
end;

http://www.cnblogs.com/win32pro
http://www.win32.cn

Delphi TRzCheckTree的使用

1.   判断状态:  
   
  if   RzCheckTree1.Selected.StateIndex   =   2   then  
      //则为选中状态  
  else   if   RzCheckTree1.Selected.StateIndex   =   1   then  
      //则为未选中状态  
  else   if   RzCheckTree1.Selected.StateIndex   =   3   then  
      //则为未全选状态  
   
  或者  
   
  if   RzCheckTree1.ItemState[I]   =   csUnchecked   then   //为未选中状态  
  if   RzCheckTree1.ItemState[I]   =   cschecked   then   //为选中状态     
   
  2:   设置  
   
  RzCheckTree1.ItemState[I]   :=   csUnchecked     //为未选中状态  
  RzCheckTree1.ItemState[I]   :=   cschecked     //为选中状态

权限树的创建

procedure CreatePermissionsTree(DataSet: TADOQuery; Tree: TRzCheckTree;
  const TableName, aid, aname, quanXian: string);
const
  ID_DEPT = 2;
var
  nLevel: Integer;
  pNodes: array[0..1023] of TTreeNode;
  lpid, lpName, s: string;
begin
  if DataSet = nil then Exit;
  if Tree = nil then Exit;
  if TableName = '' then Exit;
  pNodes[0] := nil;
  Tree.Items.Clear;
  with DataSet do
  begin
    Close;
    SQL.Clear;
    s := Format('select * from %s order by %s', [TableName, aid]);
    SQL.Text := s;
    Open;
    if IsEmpty then Exit;
    First;
    while not Eof do
    begin
      lpid := FindField(aid).AsString;
      lpName := FindField(aname).AsString;
      nLevel := Length(lpID) div ID_DEPT;

pNodes[nLevel] := Tree.Items.AddChild(pNodes[nLevel - 1], lpName);
      if FindField('quanxian').AsBoolean then
        pNodes[nLevel].StateIndex := 2
      else pNodes[nLevel].StateIndex := 1;
      Next;
    end;
  end;
end;

(0)

相关推荐