Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2007
Avatar de ivanflores
ivanflores ivanflores is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
ivanflores Va por buen camino
Talking Cancelar La Accion Cerrar.

Hola a todos quisiera ver si Me podrian ayudar con mi siguiente problema.

Quiero Que al cerrar la ventana me detecte algun proceso activo como por ejemplo una captura incompleta, detectaria un botton activo o un edit activo y preguntarme si en verdad quiero cerrar la ventana al haber un poceso activo(claro que lo pondria yo) si es asi que cancele la accion de cerrar y me deje en la ventana que estoy trabajando, me gustaria para hacerlo con las opciones alt+F4 y el botton de cerrar (X) de la ventana, por otro lado si no hay nada activo que cierre sin preguntar nada ya sea con alt+F4, con (X) o con un boton que yo ponga. de antemano muchas gracias por su ayuda ya llevo dos semanas dandole vuelta al cerebro y todavia no encuentro la solucion.
Espero y puedan ayudarme.
Responder Con Cita
  #2  
Antiguo 23-10-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola,

creo que existe un evento en los formularios llamado OnCloseQuery. En él debes hacer esas comprobaciones antes de cerrar. Y si se cumplen las necesarias para no cerrar debes poner la variable CanClose a False;

SAludos
Responder Con Cita
  #3  
Antiguo 23-10-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
En el evento OnCloseQuery del formulario en cuestion puedes hacer ese tipo de validaciones, por ejemplo:

Código Delphi [-]
CanClose := (MessageDlg('Seguro que desea cerrar la aplicación', mtConfirmation, [mbYes, mbNo], 0) = mrYes);

Y listo .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 23-10-2007 a las 00:20:12. Razón: Mejorar un poco el codigo ;).
Responder Con Cita
  #4  
Antiguo 23-10-2007
Avatar de ivanflores
ivanflores ivanflores is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
ivanflores Va por buen camino
Pero en caso de que no haya nada activo, quiero que me cierre el form sin necesidad de preguntar nada.... algo asi, doy un ejemplo simple.

Código Delphi [-]
if button1.enabled=true;
then
showmessage(' Existe un proceso sin finalizar, no puede salir, cancele la operacion para poder salir.')
//aqui quiero que me cancele la accion salir//
else
close;
end;
****Esta claro que este codigo no trabaja, es solo un simple ejemplo que pongo para que se den una idea de lo que quiero hacer y me puedan hechar una mano.***

Todo esto lo quiero hacer mediante las opciones de cerrar, claro esta que la forma lleva un boton de cerrar el cual al tener activo el proceso de captura se inactiva, lo cual queda activo alt+F4 y el botton cerrar de la aplicacion (X), tengo entendido tambien que se programaria en la propiedad onclose u onclosequery. me gustaria que me hecharan una mano, Agradesco la ayuda anterior y la voy a probar haber como me queda mejor,de nuevo muchas gracias por toda la ayuda.
Responder Con Cita
  #5  
Antiguo 23-10-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ivanflores Ver Mensaje
Pero en caso de que no haya nada activo, quiero que me cierre el form sin necesidad de preguntar nada.... algo asi, doy un ejemplo simple.


Código Delphi [-]
if button1.enabled=true;
then
showmessage(' Existe un proceso sin finalizar, no puede salir, cancele la operacion para poder salir.')
//aqui quiero que me cancele la accion salir//
else
close;
end;




****Esta claro que este codigo no trabaja, es solo un simple ejemplo que pongo para que se den una idea de lo que quiero hacer y me puedan hechar una mano.***

Todo esto lo quiero hacer mediante las opciones de cerrar, claro esta que la forma lleva un boton de cerrar el cual al tener activo el proceso de captura se inactiva, lo cual queda activo alt+F4 y el botton cerrar de la aplicacion (X), tengo entendido tambien que se programaria en la propiedad onclose u onclosequery. me gustaria que me hecharan una mano, Agradesco la ayuda anterior y la voy a probar haber como me queda mejor,de nuevo muchas gracias por toda la ayuda.
Puedes usar la funcion MessageDlg para eso que deseas

Código Delphi [-]
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if MessageDlg('¿ Realmente desea salir de Sistema ?', mtInformation,
     mbYesNOCancel, 0) = mrYes then  begin
        Action := caFree;
  end
  else Action := caNone;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 23-10-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Otra similar
Código Delphi [-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
    if MessageDlg('¿ Realmente desea salir de Sistema ?', mtInformation, [mbYes, mbNo], 0) = mrYes then
        CanClose := true
    else
        CanClose := false;
end;

Salutes
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
Cancelar accion de un evento OnExit FGarcia Varios 5 11-05-2007 13:38:18
Cerrar un form, o cancelar llamada al API rex Varios 3 19-05-2006 01:05:54
accion remota unko! Internet 2 19-03-2005 18:51:21
Acción del PrinterSetupDialog BlueSteel Impresión 2 14-01-2005 21:26:29
Confirmación de acción obiwuan PHP 2 23-09-2003 20:07:38


La franja horaria es GMT +2. Ahora son las 17:49:31.


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