Autor Tema: Cancelar proceso de un For Next  (Leído 3145 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Cancelar proceso de un For Next
« en: Julio 07, 2011, 10:20:06 am »
Hola.
Cuando quiero cancelar un proceso que ejecuta un timer pongo en el un DoEvent y en un boton llamado "cancelar" pongo Timer.Enabled = false y ya.

Ahora, si por ejemplo estoy manipulando un Grid (ya sea coloreando o retocando el font, lo que fuere) fila por fila usando un For Next, y resulta que son 5000 filas y tomaría unos 2 minutos que termine (es un ejemplo), ¿como podría cancelarlo? (obvio que desde un botón cancelar para el usuario).

Yo por ahora lo que hago es tener una variable publica llamada memCancel en False, y dentro del For Next pregunto si memCancel es true y también con su respectivo DoEvents, si es True pues le mando un Exit Sub. Es en el botón cancelar que vuelvo memCancel en True. ¿Existe una forma mejor que esta?

Saludos
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Cancelar proceso de un For Next
« Respuesta #1 en: Julio 07, 2011, 10:27:01 am »
Exit For

Creo que es eso, aunque, para mas de "una condicion" esta bien como lo haces :P

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cancelar proceso de un For Next
« Respuesta #2 en: Julio 07, 2011, 07:19:43 pm »
mmm, no amigo, creo que Exit for no seria, Exit for me saca del loop pero no del proceso (del Sub), porque después del For Next pudiera haber mas lineas de código dentro de ese proceso, en mi caso tengo como 20 operaciones mas después del for next que no deben ejecutarse.

La forma que lo hago funciona de 100, sin problemas, mi inquietud iba por si se existía otra forma mejor.

Saludos
Me encuentras en YAcosta.com

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Cancelar proceso de un For Next
« Respuesta #3 en: Julio 07, 2011, 08:45:33 pm »
Exit sub, Exit Function y en ciertos casos no descartaria un GoTo.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Cancelar proceso de un For Next
« Respuesta #4 en: Julio 07, 2011, 08:53:48 pm »
esta bien como lo haces, es la forma mas comun, yo lo haria igual


Goto nooooooooo, chiste:




ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Cancelar proceso de un For Next
« Respuesta #5 en: Julio 23, 2011, 08:03:57 pm »
Saludos a todos !!! ;D

En mi humilde opinión (y con todo respeto a las anteriores)... las cosa por ordén (muchos dirán que no tiene importancia): 1ro: parar el bucle (Exit For) y se irá a la línea siguiente del For-Next, 2do: Salir del Function o Sub (Exit Function o Exit Sub -según sea el caso-) aún cuando se crea que puede ser una 'redundancia' de código, aquí hay que ir a lo seguro. :D


Saludos !!!
Manuel F. Borrego S 8)
Barcelona, Edo. Anzoátegui. Venezuela.
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!