Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Uso de Delete[]

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Uso de Delete[] Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Uso de Delete[] Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Por qué no intentas comparar el puntero con NULL antes de hacer el delete???
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: Uso de Delete[] Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

holas:

Pon el codigo para ver que intestas hacer
me pasan muxas ideas x la cabeza Razz
_________________
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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.