Página 1 de 1

Como interrumpir un proceso

Publicado: Mié Ene 23, 2008 11:08 pm
por josem
Buenas noches,
Deseo que cuando estoy ejecutado un proceso, pueda pulsar un botón
"cancelar" para que no continúe con el proceso
Adjunto un ejemplo donde se puede apreciar más claramente.
Hay 2 botones, uno para iniciar un contador de 1 hasta 500000, y otro botón
que sería el que cancelaría el proceso, mientras se está ejecutando el
contador
Saludos
José Manuel Serrano


Attached files contador.zip (1.6 KB)Â

Como interrumpir un proceso

Publicado: Jue Ene 24, 2008 7:43 am
por ignacio
José Manuel,
Lo más sencillo es utilizar una DATA del propio formulario. Ej:
1) Creación de la data:
DATA lStop INIT .F.
2) Cambiar el valor de la data en el OnClick de un botón:
oBtn:OnClick := {|| ::lStop := .T. }
3) Incluir una llamada a ProccessMessages y control de salida del bucle
DO WHILE ....
ProcessMessages()
IF ::lStop
EXIT
ENDIF
ENDDO
El mayor inconveniente de este sistema es que has de deshabilitar el resto
de controles de formulario, y además controlar que no te cierren el
formulario pues el usuario va poder, por ejemplo, cerrar el formulario
mientras que se procese el bucle.
Un saludo
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
"José Manuel" <josem@nuel.es> escribió en el mensaje
news:4797bb46$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Buenas noches,
>
>
> Deseo que cuando estoy ejecutado un proceso, pueda pulsar un botón
> "cancelar" para que no continúe con el proceso
>
> Adjunto un ejemplo donde se puede apreciar más claramente.
>
> Hay 2 botones, uno para iniciar un contador de 1 hasta 500000, y otro
> botón que sería el que cancelaría el proceso, mientras se está ejecutando
> el contador
>
> Saludos
> José Manuel Serrano
>
>
>

Como interrumpir un proceso

Publicado: Mié Feb 20, 2008 1:36 pm
por notengo
José Manuel,
> Deseo que cuando estoy ejecutado un proceso, pueda pulsar un botón
> "cancelar" para que no continúe con el proceso
>
> Adjunto un ejemplo donde se puede apreciar más claramente.
>
> Hay 2 botones, uno para iniciar un contador de 1 hasta 500000, y otro botón
> que serí­a el que cancelarí­a el proceso, mientras se está ejecutando el
> contador
Mira en el ejemplo samplesdialogs cómo se hace utilizando un control
TProgressDlg, creo que te resultará más fácil hacerlo así­.
Saludos,
José Lalí­n