Barra de progreso con el tiempo que dure un procedimiento

programador666
18 de Junio del 2004
La idea es la siguiente:

Necesito que una barra de progreso le vaya indicando al usuario el avance del mismo, pero dependiendo del tiempo que dure el procesador en realizar el proceso, no con un tiempo predefinido en algun timer.

Por favor, ayudenme.

palacios
18 de Junio del 2004
tienes que establecer el valor maximo del proceso por ejemplo en un bucle, el valor de la condicion.
ej:

for I=0 to ValorMaximo

por lo que seria

Me.ProgressBar1.Min = 0
Me.ProgressBar1.Max = ValorMaximo

y luego determinar el factor de incremento. Para ejemplificartelo mejor, pues no se el trabajo que estas haciendo mira este ejemplo con un boton y una barra.

Ojala te sirva:

Private Sub Command1_Click()
Dim ValorMaximo As Integer

ValorMaximo = 10000

Me.ProgressBar1.Max = ValorMaximo

For i = 0 To ValorMaximo
Me.ProgressBar1.Value = i
Next
End Sub

Private Sub Form_Load()
Me.ProgressBar1.Min = 0
End Sub

si te queda duda dimelo y tratare de ayudarte

Chao

palacios
[email protected]

RIGEL
18 de Junio del 2004
yo si tengo una duda palacios, como saber el valor maximo?
yo tengo un programa el cual hace respaldo de una base de datos en un disket, y me gustaria ponerle la barra de progreso en lo que se hace la copia de la base de datos, pero como saber cuanto se tardara para ponerle ese valor a la barra o como se le hace?
Gracias!

Solid Snake
18 de Junio del 2004
Private Sub Command1_Click()

Dim fs As New FileSystemObject
Dim temporal As Folder
Dim archivo As File
Dim porcentaje As Double
Dim progreso As Double
Dim nCarpetas As Integer

On Error Resume Next

i = 0
progreso = 0

Set temporal = fs.GetSpecialFolder(2)

porcentaje = 100 / temporal.Files.Count
nCarpetas = temporal.SubFolders.Count

Screen.MousePointer = vbHourglass

For Each archivo In temporal.Files

numCarpeta.Caption = i & "/" & nCarpetas
lblArchivo.Caption = archivo

SetAttr archivo, vbNormal
archivo.Delete True

progreso = progreso + porcentaje
incrementaBarra (progreso)

DoEvents

Next archivo

Screen.MousePointer = vbDefault
MsgBox "Proceso Completado"

End Sub

Sub incrementaBarra(progreso As Double)

ProgressBar1.Value = progreso

If progreso = 100 Then
i = i + 1
End If

End Sub

Private Sub Command2_Click()

End

End Sub


*Este codigo es de SDEMINGO derechos intelectuales reservados

*Cumplo con la declaracion de que ese codigo pertenece a alguien (SDEMINGO) y lo publico para Guia .

Espero que te sirva