![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Confirmación de cerrar ventana
Tiene pinta de que no estás devolviendo bien el valor de retorno del ShowModal.
Asegurate que tu botón indica mrYes o que el ModalResult es igual a mrYes, que es con el valor que estás haciendo la comparación. |
#2
|
|||
|
|||
Cierra sólo el Form3 y el principal se queda activo.
Si, el Form3 el botón si tiene en ModalResult mrYes. Y el Form principal el botón de salir sólo tiene:
procedure TForm1.Button5Click(Sender: TObject); begin Form3.ShowModal; end; El botón salir del form principal en ModalResult tiene mrNone. |
#3
|
|||
|
|||
Vamos a hacerlo con un ejemplo:
Creamos 3 formularios y lo dejamos que sean AutoCreate. Ahora en el formulario TForm1 le asociamos un botón que en su evento OnClick tenga la apertura del TForm2. Form2.ShowModal; En el formulario TForm3 añadimos dos botones, uno con ModalResult a mrYes y el otro a mrNo. En el evento OnCloseQuery del TForm2 añadimos el siguiente código: CanClose := (Form3.ShowModal = mrYes); Si ejecutamos esta aplicación al cerrar el formulario 2 si pulsas sobre el botón con valor de retorno mrYes se cierra y si es mrNo (o cualquier otro valor) no. |
![]() |
|
|
![]() |
|