Hola David, tienes que recorrer todos los controles que tienes dentro de tu GroupBox, preguntar si es un CheckBox y haces las operaciones que necesites, ejemplo.
Código Delphi
[-]
var
i, cont : Integer;
begin
cont := 0;
for i:=0 to GroupBox1.ControlCount-1 do
begin
if (GroupBox1.Controls[i] is TCheckBox) then
if TCheckBox(GroupBox1.Controls[i]).Checked then
inc(cont);
end;
if cont=0 then
showmessage('Ningun CheckBox esta marcado');
Ahora para marcar todos o desmarcar todos, sería mejor que tu checkbox que haga eso este fuera de tu GroupBox asi haces menos controles.
Código Delphi
[-]
procedure TFPrincipal.CheckBoxMarcarClick(Sender: TObject);
begin
for i:=0 to GroupBox1.ControlCount-1 do
begin
if (GroupBox1.Controls[i] is TCheckBox) then
TCheckBox(GroupBox1.Controls[i]).Checked := CheckBoxMarcar.Checked;
end;
end;
Pero también podías haber usado un CheckListBox.
Saluditos