Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
I:Integer;
begin
for i := 0 to Panel1.ControlCount - 1 do
if (Panel1.Controls[i] as TCheckBox).Checked then
ShowMessage('bien')
else
ShowMessage('Mal');
end;
Esto funciona correctamente, lo acabo de probar, el problema creo que este en
Agrupa que no está publicado lo que hace.
Un Saludo.