SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: Áldaron en Martes 24 de Junio de 2008, 16:55

Título: Progreso con bucle For
Publicado por: Áldaron en Martes 24 de Junio de 2008, 16:55
Hola a todos!
Hace ya mas o menos 1 mes estube intentando crear un progreso en porciento, es decir que fuera de 1% a 100% y se ejecutara la siguiente orden.

Utilicé este bucle con for:
Código: Text
  1. for i = 1 to 100
  2. print i
  3. Next
  4.  

En cierto caso me sirvió, pero yo necesito que se vea el progreso, que valla 1,2,3,4... hasta 100, lo que hace este bucle es saltar de 1 a 100 creo yo, porque no veo el progreso, solo veo cuando pone 1 y de un momento a otro 100.

Les agradezco cualquier ayuda o sugerencia que se les venga a la cabeza ;)

Gracias de antemano.
Título: Re: Progreso con bucle For
Publicado por: Mollense en Martes 24 de Junio de 2008, 23:32
Cita de: "Áldaron"
Hola a todos!
Hace ya mas o menos 1 mes estube intentando crear un progreso en porciento, es decir que fuera de 1% a 100% y se ejecutara la siguiente orden.

Utilicé este bucle con for:
Código: Text
  1. for i = 1 to 100
  2. print i
  3. Next
  4.  

En cierto caso me sirvió, pero yo necesito que se vea el progreso, que valla 1,2,3,4... hasta 100, lo que hace este bucle es saltar de 1 a 100 creo yo, porque no veo el progreso, solo veo cuando pone 1 y de un momento a otro 100.

Les agradezco cualquier ayuda o sugerencia que se les venga a la cabeza ;)

Gracias de antemano.
Hola viejo. Ahora no lo puedo probar, pero creo que deberías darle un evento al SO entre cada impresión.

Código: Text
  1. Application.DoEvents()
  2.  

Fijate en esto (http://msdn.microsoft.com/es-es/library/bd65th41(VS.80).aspx)
Título: Re: Progreso con bucle For
Publicado por: Áldaron en Miércoles 25 de Junio de 2008, 00:58
jsajasjsa
Bueno.. aun no estoy familiarizado con Doevents() puesto que estoy empezando con VB 2005, si me lo explicás te lo agradecería ;) de todos modos gracias Mollense por la sugerencia ^^

Otra cosita, el enlace que me das me dice: "Contenido no encontrado ". También leí por ahi que podría obtener el  resultado que quiero con un while, pero resulta que hace lo mismo que el for :S
Título: Re: Progreso con bucle For
Publicado por: Mollense en Miércoles 25 de Junio de 2008, 03:56
Cita de: "Áldaron"
jsajasjsa
Bueno.. aun no estoy familiarizado con Doevents() puesto que estoy empezando con VB 2005, si me lo explicás te lo agradecería ;) de todos modos gracias Mollense por la sugerencia ^^

Otra cosita, el enlace que me das me dice: "Contenido no encontrado ". También leí por ahi que podría obtener el  resultado que quiero con un while, pero resulta que hace lo mismo que el for :S
Para que la pantalla se actualice tenés que permitir al sistema operativo que procese todos los mensajes que tiene en cola, esto se hace mediante el método "Application.DoEvents()" y deberías hacerlo cada vez que imprimís algo:
Código: Text
  1. for i = 1 to 100
  2.       print i
  3.       Application.DoEvents()
  4. Next
  5.  

PD: El link sí funciona.
Título: Re: Progreso con bucle For
Publicado por: Áldaron en Viernes 27 de Junio de 2008, 22:49
Muchas gracias por tu ayuda!!! ;)

- Bien!!! funciona tal cual como yo quiero.
Otra pregunta: ¿Para disminuir la velocidad del "contador" utilizo un timer y se lo aplico a....?

- Si ahora si que funciona el link...
Al parecer el link me está haciendo quedar mal jajajaja antes, como te dije, me presentaba ese mensaje y, eso que refresqué la página 3 veces y entré desde tu link 2 veces... Bueno, cosas de la vida que nunca sabré el por qué jsajas.

De nuevo muchas gracias!
Título: Re: Progreso con bucle For
Publicado por: Mollense en Sábado 28 de Junio de 2008, 08:55
Cita de: "Áldaron"
Muchas gracias por tu ayuda!!! ;)

- Bien!!! funciona tal cual como yo quiero.
Otra pregunta: ¿Para disminuir la velocidad del "contador" utilizo un timer y se lo aplico a....?

- Si ahora si que funciona el link...
Al parecer el link me está haciendo quedar mal jajajaja antes, como te dije, me presentaba ese mensaje y, eso que refresqué la página 3 veces y entré desde tu link 2 veces... Bueno, cosas de la vida que nunca sabré el por qué jsajas.

De nuevo muchas gracias!
No, si en vez de usar un for, usás un Timer, no vas a necesitar del DoEvents. Simplemente especificás la frecuencia del timer "Interval", esta se especifica en miliseguntos y solamente te queda poner el código en el evento tick de ese control:

Código: Visual Basic
  1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  2.     'Tu código
  3. End Sub
  4.  
Título: Re: Progreso con bucle For
Publicado por: Áldaron en Sábado 28 de Junio de 2008, 13:22
buff.. se han hido los cables... entonces eso si que lo sabia... u.u

Bueno, de todos modos muchas gracias ^^
Título: Re: Progreso con bucle For
Publicado por: Mollense en Sábado 28 de Junio de 2008, 17:56
Cita de: "Áldaron"
buff.. se han hido los cables... entonces eso si que lo sabia... u.u

Bueno, de todos modos muchas gracias ^^
DE nada  :comp: