Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2007
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Exclamation No cerrar hasta guardar cambios

Hola amigos, mi pregunta es: Como puedo haser para que cuando a una aplicacion se le de click en el boton superior derecho con la x de serrar, le de al usuario la eleccion de cerrar o no cerrar, como cuando en word escribimos algo y sin guardar le damos click en ese mismo boton y nos envia el mensage.
y si se le dise que no lo cierre no lo hase.
Saludos.
Responder Con Cita
  #2  
Antiguo 05-05-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola mario2000

Trata de hacer lo siguiente
  1. Usa el evento OnClose de la forma,
  2. Usa un dialogo de mensaje que te recomiendo el MessageDlg.
  3. Validas en las respuestas del MessgeDlg de esta manera
  • Si se selecciona Yes realizas lo que deseas y al final colocas esta instruccion Action := caFree
  • Si Selecciona No Mandas un mensaje de aviso y asignas Action := caNone.
Trata de hacerlo y nos cuentas.

Salud OS y bienvenido al foro.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 05-05-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Para conseguir lo que deseas, debes emplear el evento OnCloseQuery:

Código Delphi [-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if IDYES = MessageBox(Handle,'¿Desea cerrar?','Advertencia',MB_YESNO)
    then CanClose := True
    else Canclose := False;
end;

Este evento se dispara en el momento de la orden del cierre del formulario y tiene un parámetro por valor (CanClose) que permite determinar si debe o no cerrarse. Si el valor es verdadero, se ejecuta el evento OnClose que corresponde al cierre, si se pone en falso, se cancela el cierre.

MessageBox() es una función que permite mostrar en pantalla un cuadro de díalogo. Y regresa un valor que representa la acción del botón pulsado.
Por ejemplo: la constante MB_YESNO, pemite mostrar dos botones: SI y NO. Y dependiendo de cual botón se pulse... se devuelve un valor que comparo con IDYES. Si es igual... se que se ha oprimido el botón SI.

Fijate y estudia el evento onCloseQuery. Deberás codificar que hacer ante la orden SI o ante la orden NO.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 05-05-2007 a las 05:19:32. Razón: El código estaba mal
Responder Con Cita
  #4  
Antiguo 05-05-2007
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Thumbs up Gracias

Muchas gracias amigos del foro son ustedes muy amables, me ha funcionado de maravilla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar cambios con componente TTable desve Tablas planas 1 26-04-2006 01:05:19
Guardar los cambios de componentes nuevos oesteve OOP 5 20-12-2005 21:08:54
Problemas guardar cambios en dbgrid con checkbox toorbye Conexión con bases de datos 0 22-09-2005 14:09:13
Guardar Cambios DBgrid con CheckBox toorbye Varios 0 22-09-2005 12:57:55
Guardar cambios en tiempo d Ejecución kwan Varios 5 30-12-2003 23:24:48


La franja horaria es GMT +2. Ahora son las 09:57:49.


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