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
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?

1 respuesta

Respuesta
1
Tu código 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 después de que lo avanzas es decir así:
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 podrías tener es que finalmente tu intervalo de barra es muy pequeño a ver trata de probarla con 100 por ejemplo allí si lo podrás notar con mayor claridad.
Hola.
El objeto ProgressBar no tiene el método Refresh...
He puesto el intervalo más 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 es que 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.
Me copie tu código y lo ejecute en mi maquina y el progress que utilizo es de la librería Microsoft Windows Common Controls 6.0 (sp6)
Te vuelvo a enviar el código o en dado caso enviame tu código y te lo mando corregido mi correo es [email protected]
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 debería 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 así que la podrías cambiar.
Si ya corregiste tu error

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas