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;