FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema al cerrar formulario
Hola, se me presenta el siguiente problema.
Digamos que tengo un formulario principal y que cuando pulso un boton muestro otro: Código:
TfrmRetirarTarjeta *frmRetirarTarjeta; frmRetirarTarjeta = new TfrmRetirarTarjeta(this); frmRetirarTarjeta->ShowModal(); Mi intención es que cuando se detecte el evento automáticamente se cierre el formulario y volver al principal. Debugeando he visto como efectivamente lo hace todo bien, pero cuando llega a la linea: Código:
Close(); No le encuentro sentido..., ideas? Un saludo! |
#2
|
||||
|
||||
No entiendo porque usas un formulario modal, éstos se usan para bloquear la aplicación y requerir al usuario cierta acción que precisa su intervención.
En cualquier caso y sin ver tu código de cierre, intuyo tu problema. Posiblemente tengas definida la variable frmRetirarTarjeta dos veces, una como global y otra como local en la función donde creas el formulario modal. A demás, posiblemente, tu Formulario frmRetirarTarjeta lo definiste como autocreado y no como disponible. Si frmRetirarTarjeta es un autocreado esto te servirá: Código:
// Mostrar void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled = true; frmRetirarTarjeta->ShowModal(); } // Cerrar void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled = false; frmRetirarTarjeta->Close(); } Código:
// Global... TfrmRetirarTarjeta *frmRetirarTarjeta; // Mostrar void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled = true; frmRetirarTarjeta = new TfrmRetirarTarjeta(this); frmRetirarTarjeta->ShowModal(); Timer1->Enabled = false; } // Cerrar void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled = false; frmRetirarTarjeta->Close(); } // Y definir el evento OnClose de TfrmRetirarTarjetapara destruir el formulario y liberarlo de la RAM void __fastcall TfrmRetirarTarjeta::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } Saludos. |
#3
|
|||
|
|||
hola, gracias por la respuesta, es justo lo q necesitaba.
El problema lo tenia porque me habia hecho un lio y desactivaba el timer del form principal y activaba el del secundario y la cosa no iba bien. Al tener control desde el timer del principal (que como está abierto en segundo plano) todo funciona perfectamente y con menos código. Muchas gracias por tu amable ayuda. Un saludo! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cerrar Formulario | Red_Leon | OOP | 13 | 08-02-2010 10:22:07 |
cerrar formulario | Patricio | Varios | 2 | 04-07-2008 23:52:27 |
Cambiar propiedad de componente del formulario padre al cerrar el formulario hijo | jzginez | OOP | 5 | 22-06-2007 21:40:51 |
Cerrar conexión al cerrar formulario | arantzal | Conexión con bases de datos | 5 | 09-08-2006 12:43:52 |
Cerrar formulario en uso | locojoan | API de Windows | 1 | 21-06-2006 17:08:22 |
|