У чекбоксов есть такой параметр как Tag, для первой группы устанавливаем 10, для второй - 20, и так далее. Потом модернизируем вариант Snake22:
Код:
var
MainFlag: integer = 0; //общее кол-во отмеченных чекеров
Group1Flag: integer = 0; //Кол-во отмеченных из первой группы
Group2Flag: integer = 0; //из второй
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
If (Sender as TCheckBox).checked then Inc(MainFlag) else Dec(MainFlag);
case TCheckBox(Sender).Tag of
10: if TCheckBox(Sender).Checked then Inc(Group1Flag) else Dec(Group1Flag);
20: if TCheckBox(Sender).Checked then Inc(Group2Flag) else Dec(Group2Flag);
end;
end;