Perdonar un inciso. Puede ocurrir un error si un componente Components[i] no es del tipo TCheckBox siendo, entonces, dynamic_cast<TCheckBox*>(Components[i]) un puntero nulo. Si ocurre el resto del código no puede funcionar. Esto puede suceder si en el formulario hay mas controles en la lista de componentes que no sean TCheckBox.
Yo para evitar el error, y hacer el código mas seguro, compruebo la no nulidad del puntero:
Código:
for (int i = 0; i < this->ComponentCount; i++) {
TCheckBox* Check = dynamic_cast<TCheckBox*>(Components[i]);
if(Check) Check->Checked = CheckBox1.Checked;
}
Saludos