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 

delete Form3 desde Form 2

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: delete Form3 desde Form 2 Responder citando

Tengo el siguiente problema:
Tengo 3 Formularios:
1. fV = Formulario principal siempre activo.
2. frmOpciones = Formulario que creo y destruyo DINAMICAMNETE.
3 frmDisplay = Formulario que creo y destruyo DINAMICAMENTE.

El problema es que si desde el FORMULARIO 3 hago esto:
Código:
frmDisplay = new TfrmDisplay(fV);


y luego cierro el formulario 3 y vuelvo a crearlo y hago esto:
Código:
delete frmDisplay;


NO FUNCIONA.
Parece que se pierde la REFERENCIA al Formulario 3.
No me da error ni nada pero el Formulario 3 no se DESTRUYE.

No se como solucionarlo.
¿Alguna sugerencia?
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Asi cierro mis forms , ojo el la referencia a NULL y la Acción caFree
Código:

void __fastcall TfrmCuentas::FormClose(TObject *Sender,
      TCloseAction &Action)
{

tbSubCuentas->Close();
tbCuentas->Close();
tbProyectos->Close();
frmCuentas=NULL;
Action=caFree;       
}

_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

POSDATA:
Gracias Touchsoftwares, pero lo que planteas no me soluciona el problema.

El problema es que:
Código:
delete frmDisplay;


Se crea desde frmOpciones que es un Formulario creado DINAMICAMENTE.
Cuando creo diatónicamente el frmDisplay, luego destruyo el frmOpciones, el cual tiene una posición en Memoria pero que al ser destruido desaparece.

Por tanto cuando lo vuelvo a crear, es un OBJETO distinto al anterior y parece que ya no tiene acceso al OBJETO que se creó puesto que no es el CREADOR.

Dos formularios aunque sean el mismo el que creas y destruyes, en cada proceso es un objeto distinto, de hecho podría crear un numero indeterminado de OBJETOS frmOpciones.

Quizás es que no me he explicado bien.

No lo elimina el Formulario que lo creó y puesto que el OBJETO al que apunto no existe, no se llega a ejecutar el EVENTO OnClose();

Pero gracias por tu comentario.
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Ya lo he corregido.
En otra parte del código donde se comprobaba la creación dinámica del formulario, tenia una opción de test donde por error volvía a crear el mismo formulario. Como consecuencia se creaban 2 formularios iguales y luego solo se destruía uno de ellos por lo que siempre se mostraba el creado por error.
_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
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.