| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Lázaro Cdt

Registrado: 18 Jul 2003Mensajes: 13Ubicación: Veracruz, México
|
Publicado: Jue 24 Jul, 2003 11:27 am Asunto: Error al cerrar MDIChild |
|
|
Hola a todos:
Acabo de leer todos los mensajes relacionados a MDIChild en este foro y sigo teniendo errores, el problema es el siguiente:
Estoy usando C++ Builder 5.0 en Windows 2000
Estoy usando un MDIForm y un MDIChild, en tiempo de ejecución creo la forma hija (sin problemas). Si a la forma hija le doy click en el boton cerrar [X], se cierra y destruye, ya que tengo la instrucción:
...en el evento onClose de la forma hija (hasta ahi todo bien).
...el gran problema viene cuando trato de cerrar a la hija desde el MDIForm (la forma padre). Me sale este error:
| Cita: | | Access violation at address 40056CB1 in module 'VCL50.BPL'. Read of address 000002CC. |
...al darle aceptar al boton del mensaje de error, me manda:
| Código: |
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
} // <---------------*****AQUI*****
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
|
No sé que pueda ser, ya que he intentado con varias formas que han explicado aquí y el error se resiste.
Espero haber sido explícito, gracias. |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Dom 27 Jul, 2003 1:43 am Asunto: |
|
|
Y incluiste el .h la forma hija en la "madre"? _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Lázaro Cdt

Registrado: 18 Jul 2003Mensajes: 13Ubicación: Veracruz, México
|
Publicado: Dom 27 Jul, 2003 4:51 am Asunto: Re: Error al cerrar MDIChild |
|
|
si, ya inclui el .h y nada  |
|
| Volver arriba |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Lun 28 Jul, 2003 9:45 am Asunto: |
|
|
HOLA:
Tiene pinta de que no llamas correctamente al constructor, ten encuenta que en una aplicacion madre / hija (Mdi) los formularios actuan como punteros libres, es decir estan cargados en memoria hasta que se auto destruyen
Tu constructor (llamada a la ventana hija) deberia ser mas o menos asi
TFormHija *a = new TFormHija(this);
a ->Show();
En su destructor como lo tiene.
Y en el destructor de la ventana madre
for (int N = 0; N < MDIChildCount; N++)
MDIChildren[0]->Close();
Por si queda alguna ventana abierta.
No te olvides que los formularios hijos debe de crearse en tiempo de ejecucion.
By. |
|
| Volver arriba |
|
 |
|