Vamos iniciar abrindo o Delphi e criando uma nova aplicação, adicione no Form cinco Checkbox e três Buttons. (OBS: Fique a Vontade para por quantos Checkbox quiser é só um exemplo). A imagem abaixo mostra uma sugestão de tela:

Feito isto prosseguiremos indo à unit do Formulário e criando dentro do Type um TTipo permissão igual a (Chek, Unchek e Invert), com isso vamos fazer as verificações das seleções e em seguida vamos criar uma procedure dentro do private chamada Change Permissão do tipo permissão não se esqueça de implementar CTRL+SHIFT+C. Como segue no código abaixo:
type
TTipoPermissao = (TpChek, TpUnchek, TpInvert);
TForm1 = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
Panel2: TPanel;
BtnTodos: TButton;
BtnNenhum: TButton;
BtnInverter: TButton;
procedure BtnTodosClick(Sender: TObject);
procedure BtnNenhumClick(Sender: TObject);
procedure BtnInverterClick(Sender: TObject);
private
procedure ChangePermissao (TipoPermissao : TTipoPermissao);
{ Private declarations }
public
{ Public declarations }
end;
procedure TForm1.ChangePermissao(TipoPermissao: TTipoPermissao);
var
I : Integer;
begin
for I := 0 to ComponentCount - 1 do
begin
if Components[I] is TCheckBox then
begin
case TipoPermissao of
TpChek :(Components[I] as TCheckBox).State := cbChecked;
TpUnchek :(Components[I] as TCheckBox).State := cbUnchecked;
TpInvert :if (Components[I] as TCheckBox).State = cbChecked then
(Components[I] as TCheckBox).State:= cbGrayed;
end;
end;
end;
end;
end.
procedure TForm1.BtnInverterClick(Sender: TObject);
begin
ChangePermissao(TpInvert);
end;
procedure TForm1.BtnNenhumClick(Sender: TObject);
begin
ChangePermissao(TpUnchek);
end;
procedure TForm1.BtnTodosClick(Sender: TObject);
begin
ChangePermissao(TpChek);
end;
Douglas Claudio
E-mail: douglas_claudio@hotmail.com