Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2004
Patxi Patxi is offline
Miembro
 
Registrado: nov 2003
Posts: 12
Poder: 0
Patxi Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 13-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 13-07-2004
Patxi Patxi is offline
Miembro
 
Registrado: nov 2003
Posts: 12
Poder: 0
Patxi Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 13-07-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 24
Nuria Va por buen camino
Cita:
Empezado por Patxi
Por cierto, cómo se hace para encerrar el código en una cajita en estos mensajes?
[ delphi ]
.....
Código
....
[ /delphi ]

Sin espacios en blanco entre los corchetes...más información sobre etiquetas .

Saludos!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 15:35:35.


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
Copyright 1996-2007 Club Delphi