Visual Basic - para un proceso??

Life is soft - evento anual de software empresarial
 
Vista:

para un proceso??

Publicado por Edgar (3 intervenciones) el 04/03/2007 21:34:36
Hey hola a todos, pues con la novedad de que necesito de su ayuda, estoy haciendo una aplicacion la cual en un formulario estoy ejecutando ciertas instrucciones, bueno lo que quiero hacer es que cuando ese formulario este ejecutando las operaciones, yo en cualquier momento pueda ponerle "cancelar" con un boton y que deje de trabajar, mi problema es que cuando empieza hacer las operaciones no me deja utilizar nada del formulario hasta que termina de ejecutarse pero ese no es el chiste, quiero hacer algo como cuando copias un archivo a tu maquina la ventana que te aparece de copiar le puedes poner cancelar aun que este ya haya estado por la mitad, eso es lo que me gustaria hacer, de antemano gracias y espero su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:para un proceso??

Publicado por Benjo (679 intervenciones) el 05/03/2007 20:03:41
Edgar, si las instrucciones en tu Form están dentro de un bucle DO o FOR, debés tener en cuenta que cada tantas instrucciones o iteraciones, debés colocar una función doevents, para que los demás controles de la aplicación puedan tener lugar en el proceso, además luego de esta instrucción, debeés evaluar un valor boolean para saber si tenés que salir o proseguir.
Ese valor Boolean lo modificas desde el evento del botón cancelar y listo.
Ej.

Private bSalir As Boolean

Private Function Iteraciondelprograma()
Do While not rs.EOF
' Desarrollo de instrucciones
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
'Función para entregar el proceso al sistema
DoEvents
if bSalir Then Exit Do
rs.movenext
Loop

End Function

Private Sub CommandCancelar_Click()
bSalir= True
end Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:para un proceso??

Publicado por Marco Fernández (1 intervención) el 28/03/2007 22:20:14
Sin embargo si el proceso es más largo y no está dentro de un FOR como dijo la respuesta anterior, puedes checar la siguiente página:

http://www.telecable.es/personales/jrubi/index.htm?trucos/tip00283.htm

describe como podemos lanzar los procesos, de tres modos :

Síncrono : Nuestro programa se detiene y la clase no devuelve el control hasta que finalizó la ejecución del proceso. Es el modo por defecto.

Asíncrono con aviso : Nuestra aplicación sigue ejecutándose y recibe un evento de la clase cuando finaliza la ejecución del proceso. Para este modo la clase debe declarse "WithEvents" y debe pasársele un control Timer.

Asíncrono : nuestra aplicación continua ejecutándose. Es similar al Shell de Visual Basic pero tenemos una propiedad para saber si continua en ejecución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar