Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Opcion de cerrar el programa (https://www.clubdelphi.com/foros/showthread.php?t=28020)

ilichhernandez 07-12-2005 01:15:24

Opcion de cerrar el programa
 
Hola amigos, estoy tratando de enviar un mensaje de confirmacion de cierre de programa de la siguiente manera...

Código Delphi [-]
procedure Tform_principal.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
form_salir.showmodal;
end;

Aqui llamé a la ventana que hara la pregunta si realmente se quiere salir....

el boton aceptar
Código Delphi [-]
procedure Tform_salir.cxButton1Click(Sender: TObject);
begin
exit;
end;

y el boton cancelar

Código Delphi [-]
procedure Tform_salir.cxButton2Click(Sender: TObject);
begin
form_salir.close;
end;

pero resulta que el "aceptar" no hace nada...... y coloco cancelar y se cierra la ventana pero no el programa.....

Alguna idea por favor..... parece facil pero no se me ocurre...

maeyanes 07-12-2005 01:40:50

Usa el evento CloseQuery de la forma principal:

Código Delphi [-]
procedure TForm_Principal.FormPrincipalCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose := PuedoSalir
end;

function TForm_Principal.PuedoSalir: Boolean;
begin
  Result := Form_Pregunta.ShowModal := mrYes
end;

Tu forma Form_Pregunta solo va a tener un boton con su propiedad ModalResult en mrYes y otro más con su ModalResult en mrNo. También podría ser mrOk y mrCancel.



Espero que te sirva...



Saludos...

Albano 07-12-2005 01:46:46

Propiedad ModalResult
 
Los botones tienen una propiedad que se llama ModalResult, es muy util en estos casos...
En la propiedad ModalResult del boton aceptar pon la opcion de mrOk, en la del boton cancelar pon mrCancel y en lugar de poner el codigo
form_salir.showmodal

pon

If form_salir.showmodal = Id_Cancel then abort

Con esto debe de quedar lo que quieres hacer.

Saludos, Dios te bendiga

Albano 07-12-2005 01:50:19

Me olvide de un detalle
 
En los procedimientos de OnClick de los botones Aceptar y Cancelar no tienes que poner nada de codigo.

Sotrono 07-12-2005 02:03:45

Hola, en vez de crear un formulario para preguntar si esta seguro de cerrar la aplicacion te conviene utilizar la funcion MessageDlg que puede hacer lo que necesitas. Busca en la ayuda de Delphi que hay un ejemplo.
Cita:

Empezado por ilichhernandez
pero resulta que el "aceptar" no hace nada...... y coloco cancelar y se cierra la ventana pero no el programa.....

La aplicacion no se va a cerrar porque lo que estas cerrando es form_salir y no el formulario principal de la aplicacion.

Saludos...

Minotaure 09-06-2006 10:15:19

Gracias
 
Tenia el problema que no sabia cómo se podia hacer para sacar un mensaje da aviso antes de cerrar la ventana en Delphi.
Con la opción buscar he encontrado vuestros mensajes que me han solucionado el problema. Muchas gracias por vuestras aportaciones.

Desconecia de la existencia de CanClose y de lo que hacia el evento OnCloseQuery.


La franja horaria es GMT +2. Ahora son las 12:46:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi