![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Cita:
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;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
#2
|
||||
|
||||
|
Pues este tipo de conversión resulta peligroso. Se trata de una variante de conversión o cast por fuerza bruta, sin tener en cuanta si lo que convertimos es o no factible. Sería algo parecido a la conversión: *(Tipo*)(&Otrotipo)
Es decir puedo convertir un TEdit a un TComBobox por las buenas pero sólo sintácticamente, para que el compilador no proteste. La realidad es que obtendré un error en tiempo de ejecución en cuanto llame a una propiedad o función que no corresponda. dynamic_cast y static_cast hacen la conversión de punteros, pero si realmente el tipo es erróneo (convertir TComboBox a TEdit, por ejemplo) entonces devuelven un puntero nulo. Para usar reinterpret_cast o la clasica *(Tipo*)(&Otrotipo) debemos estar muy seguros de lo que hacemos, de lo contrario tendremos un grave error de punteros. En este caso, creo que lo más adecuado es: Código:
for (int i = 0; i < this->ComponentCount; i++) {
TCheckBox* Check = dynamic_cast<TCheckBox*>(Components[i]);
if(Check) Check->Checked = CheckBox1.Checked;
}
Código:
for (int i = 0; i < this->ComponentCount; i++) {
TCheckBox* Check = static_cast<TCheckBox*>(Components[i]);
if(Check) Check->Checked = CheckBox1.Checked;
}
Saludos. |
|
#3
|
||||
|
||||
|
mmm, entendido, muchas gracias por tu explicación escafandra
.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| checkbox | Lupita | Varios | 6 | 07-04-2008 16:12:53 |
| ayuda error mysql y checkbox | solidus128 | Conexión con bases de datos | 5 | 25-08-2007 00:25:00 |
| ayuda con el checkbox | Debian | Conexión con bases de datos | 4 | 11-04-2005 19:59:04 |
| ayuda con el checkbox | Debian | Conexión con bases de datos | 1 | 11-04-2005 10:45:24 |
| checkbox | superhopi | OOP | 3 | 12-05-2003 11:32:46 |
|