![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola,
oye jachguate, con respecto al ejemplo que has enviado, en Procedure TForm1.CloseQuery(sender : TObject; var CanClose : Boolean); Begin // evitamos que el usuario cierre la forma mientras se está ejecutando el proceso CanClose := not FEnProceso; End; si al pulsar el botón de Salir, FEnProceso no es True, no pasa nada, pero si quiséramos esperar a que FEnProceso sea True y cerrar la aplicación sin tener que pulsar de nuevo, cómo se haría? Gracias. |
|
#2
|
||||
|
||||
|
Vamos.. un poco de ingenio al asunto... plantea una solución que se te ocurra y si no te funciona yo te echo un cable. Pero hacertelo todo, me resisto. Te has avocado a la persona equivocada
![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
|||
|
|||
|
Perdona, pero no se trata exactamente de eso, simplemente he utilizado tu respuesta para simplificar. El problema es, siguiendo utilizando parte de tu ejemplo:
Type TForm1 = Class(TForm) .. Private FEnProceso : Boolean; FCancelado : Boolean; .. Implementation Procedure TForm1.bProcesarClick(Sender : TObject); Var i : Longint; Begin FEnProceso := True; FCancelado := False; try InicializarProceso; DeshabilitarControles; For i := 1 to 2147483647 do Begin RealizarIteracionDelProceso; Application.ProcessMessages; if FCancelado Then Break; // paramos el proceso End; if Not FCancelado Then ProcesoTerminadoConExito; else RealizarAccionesParaCancelar; finally FEnProceso := False; HabilitarControles; end; End; Olvidándonos de los botones de Cancelar y Cerrar y poniendo otro: TForm1.ClickButton1(Sender: TObject); begin .... (CA) Parte del Codigo ... while FEnProceso do Application.ProcessMessages; ?? begin .... (CB) Resto del Codigo ... end; end; La pregunta es cómo esperar a que FEnProceso sea False para seguir el código CB es decir que haya terminado el bProcesarClick. E imaginación le he echado toda la que tengo. Por cierto, cómo se hace para encerrar el código en una cajita en estos mensajes? Saludos. |
|
#4
|
||||
|
||||
|
Cita:
..... Código .... [ /delphi ] Sin espacios en blanco entre los corchetes...más información sobre etiquetas . Saludos! ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|