Cita:
Empezado por escafandra
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 TListBox
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
|
Cierto, de hecho muy interesante, yo no tenia idea que se podían declarar punteros de esa forma en C++ Builder... por otro lado... quizá también sea interesante la siguiente solución que simplemente reemplaza
dynamic_cast por el
reinterpret_cast, haciendo uso de los distinto tipos de cast que tiene C++ Builder:
Código:
Integer i;
for (i = 0; i < this->ComponentCount; i++) {
reinterpret_cast<TCheckBox*>(Components[i])->Checked = CheckBox6->Checked;