Inicio > Visual Basic > juanky74 > ProgressBar

ProgressBar

Experto:
Usuario:
Fecha: 06/05/2004
Valoración: (3,00 sobre 5) Categoría: Visual Basic
29/04/2004
menosmola10, usuario preguntando en Visual Basic
Usuario
En mi aplicación utilizo una barra de progreso para indicar cuanto falta para que un algoritmo termine su ejecución, pero el proceso de llenado de la barra no se hace linealmente, es decir, primero está un tiempo vacío y cuando el algoritmo acaba la llena de golpe, en lugar de ir llenándolo a cada iteración del algoritmo, que es el siguiente:

prgBarra.Min = 0: prgBarra.Max = 10
prgBarra.Value = prgBarra.Min: prgBarra.Visible = True
For c3 = 0 To 9
c2 = 999
Do While c2 > 3
c1 = Int((999 * Rnd) + 1)
c4 = Val(Right(CStr(Second
(Time)), 1))
c4 = c4 + c1
If c4 > 0 And c4 < 3 Then
c2 = c4: aD(c3) = c2
End If
Loop
prgBarra.Value=prgBarra.Value + 1
Next c3

Cada vez que encuentra un número entre 1 y 3 debería llenar la barra de proceso, pero lo hace cuando finaliza el algoritmo.
¿Alguien puede ayudarme?


29/04/2004
menosmola10, experto respondiendo en Visual Basic
Experto
Hola,

Mira tu codigo si hace que avance la progress bar solo que como es tan pequeño tu intervalo lo se nota, si deseas que le puedes añadir un prgBarra.Refresh despues de que lo avanzas es decir asi:

Pregunta de menosmola10 al Tablón Público
ProgressBar
En mi aplicación utilizo una barra de progreso para indicar cuanto falta para que un algoritmo termine su ejecución, pero el proceso de llenado de la barra no se hace linealmente, es decir, primero está un tiempo vacío y cuando el algoritmo acaba la llena de golpe, en lugar de ir llenándolo a cada iteración del algoritmo, que es el siguiente:

prgBarra.Min = 0: prgBarra.Max = 10
prgBarra.Value = prgBarra.Min: prgBarra.Visible = True
For c3 = 0 To 9
c2 = 999
Do While c2 > 3
c1 = Int((999 * Rnd) + 1)
c4 = Val(Right(CStr(Second
(Time)), 1))
c4 = c4 + c1
If c4 > 0 And c4 < 3 Then
c2 = c4: aD(c3) = c2
End If
Loop
prgBarra.Value=prgBarra.Value + 1
prgBarra.Refresh
Next c3

Otros de los problemas que podrias tener es que finalmente tu intervalo de barra es muy pequeño a ver trata de probarla con 100 por ejemplo alli si lo podras notar con mayor claridad.

espero que esto te pueda ayudar
30/04/2004
menosmola10, usuario preguntando en Visual Basic
Usuario
Hola.
El objeto ProgressBar no tiene el método Refresh...
He puesto el intervalo mas grande y ocurre lo mismo:
CUando se inicia el algoritmo se tira unos 5 o 6 segundos pensando y luego llena el progressbar rápidamente, pero dando tiempo a ver cómo se llena.
El problema esque no debería estar esos 5 segundos quieto y llenarlo después, debería ir llenando en un tiempo más o menos lineal.

Gracias por el interés.
01/05/2004
menosmola10, experto respondiendo en Visual Basic
Experto
Hola de nuevo,

Mira me copie tu codigo y lo ejecute en mi maquina y el progress que utilizo es de la libreria Microsoft Windows Common Controls 6.0 (sp6)

Te vuelvo a enviar el codigo o en dado caso enviame tu codigo y te lo mando correjido mi correo es juan_aleman@star.com.pe

prgBarra.Min = 0: prgBarra.Max = 10
prgBarra.Value = prgBarra.Min: prgBarra.Visible = True
For c3 = 0 To 9
c2 = 999
Do While c2 > 3
c1 = Int((999 * Rnd) + 1)
c4 = Val(Right(CStr(Second(Time)), 1))
c4 = c4 + c1
If c4 > 0 And c4 < 3 Then
c2 = c4: 'aD(c3) = c2
End If
Loop
prgBarra.Value = prgBarra.Value + 1
prgBarra.Refresh
Next c3


Supongo que te deberia de servir


Ya revise la barra que estas utilizando y es la Microsoft Windows Common COntrols 5.0 (sp2) y esta como dices no tiene refresh asi que la podrias cambiar.

Espero que te ayude
06/05/2004
menosmola10, experto respondiendo en Visual Basic
Experto
Hola si ya corregiste tu error por favor finaliza la pregunta. gracias
06/05/2004
menosmola10, usuario preguntando en Visual Basic
Usuario
Bien. Una respuesta aceptable.
Enlaces patrocinados