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 

Problema al Cerrar Forms Abiertos Modalmente

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema al Cerrar Forms Abiertos Modalmente Responder citando

Buenas...

Mi problema es el siguiente...

Desde un Form1 visualizo un Form 2 de la forma

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TForm2 *Form2 = new TForm2(this);

  Form2->ShowModal();

  delete Form2;

}


Al activarse el Segundo form2 automaticamente visualizo un tercer Form de la forma..

Código:
void __fastcall TForm2::FormActivate(TObject *Sender)
{

  TForm3 *Form3 = new TForm3(this);

  Form3->ShowModal();

  delete Form3;

  Application->OnMessage = 0;

  ModalResult = mrOk;

}



Desde el tercer Form3 pulsando un Boton quiero cerrar Form3 y automaticamente Form2 tambien ... para ello

Código:
void __fastcall TForm3::Button1Click(TObject *Sender)
{
  Application->OnMessage = 0;

  ModalResult = mrOk;

}



SOLO me cierra Form3.. Sad

¿Que debo de hacer para que me cierre Form2 automaticamente y solo quede activo Form1 sin interactuar en ningun momento con Form2?

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Pues a mi me funciona bien. No te hace falta poner Application->OnMessage = 0; para cerrar el formulario, a no ser que sea por otro motivo.

Siempre puedes añadir al final del código de los botones: Close();

Mira a ver si en otra parte del código cambias el ModalResult a mrNone.


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Para cerrar el form2 necesita poner el Close(); debajo del ModalResult = mrOk;
Yo tampoco entiendo muy bien para que necesitas el onmessage=0
En el Click del Button1 del form3 si ys en diseño pones que el boton es modalresutl ok no necesitas repetirlo en el evento.

Saludos,
Juanma
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Por si las dudas, el Close es en evento activate del form2 después de la asignación del modalresult, que dicho sea de paso deberías de asignar ok si viene con un ok del form3 salvo que en tu código esto no sea significativo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por contestarme... (Supongo que algunos son tambien merecedores de un tributo... si no en este, quiza en otro foro Wink )

El caso es que me sigue sin funcionar... Es por ello que he decidido subir un sencillo ejecutable para mostrar el problema.. puede bajarse de la nube (Pr.rar) :

https://app.box.com/s/rsp29xqj1axn6yx0q5vp

Gracias Otra Vez

Nota :
Lo del
Código:
Application->OnMessage = 0;
lo pongo siempre desde que un mensaje quedo colgado en un form Modal cerrado y me dio problemas.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Código:

void __fastcall TForm2::FormActivate(TObject *Sender)
{
  TForm3 *Form3 = new TForm3(this);

  switch (Form3->ShowModal())
   {
     case mrOk:{delete Form3;break;}
     case mrCancel: break;
   }


  Application->OnMessage = 0;

  ModalResult = mrOk;

  //Close();

  PostMessage(Handle, WM_CLOSE, 0, 0);

}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Perfecto... Muchas Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
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.