Так, кажется, я понял. Вам нужно при нажатии на Button1 проверить все чекбоксы, и если чекбокс помечен, увеличить его переменную? Если да, то все куда проще: просто поставьте у всех чекбоксов Tag в значение 0, и при нажатии Button1 делайте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to Form1.ComponentCount - 1 do
begin
if not (Form1.Components[i] is TCheckBox) then continue; //если не чекер, то пропускаем
if TCheckBox(Form1.Components[i]).Checked then
TCheckBox(Form1.Components[i]).Tag:= TCheckBox(Form1.Components[i]).Tag + 1;
TCheckBox(Form1.Components[i]).Checked:= False; //заодно и снимем пометку, раз новый лист делаем
end;
end;
А чтобы вывести результат просто в событии Button2 проверьте значение Tag у каждого чекера - оно и будет отражать, сколько раз он был выбран.