Ver Mensaje Individual
  #2  
Antiguo 10-05-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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();
}
En otro caso debes declarar frmRetirarTarjeta como global o como miembro de Form1 y proceder así:

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.
Responder Con Cita