| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jochercoles Cdt

Registrado: 08 Jul 2005Mensajes: 24Ubicación: Argentina
|
Publicado: Jue 04 Oct, 2007 2:00 pm Asunto: Uso de Delete[] |
|
|
Muchachos, tengo el siguiente escenario:
Declaro un array de controles (TEdit).
Según que haga el usuario se hace un new en cada posición de un nuevo TEdit.
Cuando llega al final del programa, es decir, al cerrarlo, intenta hacer un delete sobre cada posición, se halla instanciado o no un nuevo control.
Lo que, si no hay una instancia, me tira error. Tengo alguna forma de saber si en el array o en la posición que se intenta deletear hay una instancia de un control.
Gracias.
Javier _________________ Javier Osvaldo Chércoles |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 04 Oct, 2007 3:49 pm Asunto: |
|
|
Pues usar ComponentCount, que lo que hace es contarlos componentes del formulario. Se me ocurre algo así, aunque no lo he probado:
| Código: | TComponent *Source;
for (int nItem = 0; nItem <Form1>ComponentCount; nItem ++)
{
Source = Form1->Components[nItem];
if (Source->ClassNameIs("TEdit"))
{
TEdit *Edit = static_cast<TEdit>(Source);
delete Edit;
}
}
|
Otra opción que veo es que uses try catch. No sé como tienes puesto el código, pero podría ser algo así:
| Código: | try
{
delete Edit;
}
catch(...)
{
} |
No es muy elegante, pero debería funcionar. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
jochercoles Cdt

Registrado: 08 Jul 2005Mensajes: 24Ubicación: Argentina
|
Publicado: Jue 04 Oct, 2007 7:32 pm Asunto: Uso de Delete[] |
|
|
Gracias Angel, probe el Try Catch antes de postear este mensaje y no me funciono. Voy a probar el primer codigo, aunque no entiendo bien porque el contar componentes de un Form, cuando en realidad necesito saber solo los que tengo en el array.
Cualquier cosa te cuento.
Gracias.
Javier. _________________ Javier Osvaldo Chércoles |
|
| Volver arriba |
|
 |
JAVH Lt JG


Registrado: 23 Oct 2003Mensajes: 61Ubicación: Tampico Tamaulipas, México
|
Publicado: Jue 04 Oct, 2007 8:04 pm Asunto: |
|
|
| Por qué no intentas comparar el puntero con NULL antes de hacer el delete??? |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 05 Oct, 2007 8:37 am Asunto: Re: Uso de Delete[] |
|
|
| jochercoles escribió: | | no entiendo bien porque el contar componentes de un Form, cuando en realidad necesito saber solo los que tengo en el array. |
¡Hombre Javier! Que es código ejemplo. De todas formas, aunque esos TEdit los tengas en un array, en algún sitio los pondrás ¿no? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Jumanor Lt


Registrado: 28 Feb 2003Mensajes: 91Ubicación: tacna-Peru
|
Publicado: Lun 15 Oct, 2007 4:09 pm Asunto: |
|
|
holas:
Pon el codigo para ver que intestas hacer
me pasan muxas ideas x la cabeza  _________________ Es dificil decir q es imposible xq el sueño de ayer es la esperanza de hoy y la realidad d mañana |
|
| Volver arriba |
|
 |
|