Você está na página 1de 10

Gua con ejemplos para usar el control Progressbar de Visual basic

Descripcin del control

Propiedad Value , Max y Min

Ejemplo 1

Propiedad Scrolling

Ejemplo 2

Barra de progreso con los temas de xp

Enlaces relacionados

1 - Descripcin del control


El control ProgressBar nos permite medir el progreso de una tarea o proceso en
nuestro programa
Este control viene con el conjunto de controles que se incorporan en el ocx
MsComctl32.ocx con el nombre de Microsoft Windows Common Control 6

Una vista previa del control ProgressBar:

Si bien es posible crear barras de progreso sin utilizar un control adicional, mediante el
ProgressBar podemos implementar de una manera rpida y fcil, mediciones de
progreso de una determinada tarea

2 - Propiedad Value , Max y Min


Este control posee 3 propiedades fundamentales para trabajar en el cdigo a la hora de
mostrar dicho progreso en la barra.

Estas tres propiedades principales son:

Value: Propiedad que indica el valor actual de la barra, o mejor dicho


del proceso que estamos midiendo

Max : La Propiedad Max establece el valor mximo para la barra o


proceso

Min : Establece el valor mnimo.

Nota: Este control tambin posee otras propiedades, pero que no son determinantes y
que estn relacionadas mas a su aspecto grfico.

3 - Un ejemplo simple para ver como funciona el control

Este ejemplo consite en generar un bucle For-Next desde 0 hasta 5000, y en cada
pasada del bucle, se ir asignando el valor de la misma a la propiedad Value del
control.
Al Progressbar, en la propiedad Min le establecemos el valor 0. A la propiedad Max el
valor mximo del proceso y la propiedad Value tomar como valor el valor de x, la
variable del For - Next
Para el ejemplo agregar los siguientes controles en un formulario:

1 Control Label llamado Label1

1 Botn de comando llamado Command1

1 Un control ProgressBar con el nombre ProgressBar1

Pegar el siguiente Cdigo fuente en el Formulario:

Private Sub Command1_Click()


Dim x As Long

' Generamos un ciclo For


For x = ProgressBar1.Min To ProgressBar1.Max
' Mostramos la veriable x (el value) en Label1
Label1 = x
' Usamos DoEvents para poder visualizar el conteo en el Label
DoEvents
' Asignamos en la propiedad Value del control ProgressBar _
el valor de x para ir incrementando la barra de progreso
ProgressBar1.Value = x
Next x
End Sub

Private Sub Form_Load()


'Le asignamos
Progress bar

las

propiedades

With ProgressBar1
.Max = 5000
.Min = 0

para

el

mnimo,

mximo

valor

del

.Value = 0
End With
End Sub

Las propiedades Min y Value pueden establecrsele valores como mnimo de 0, osea
que un valor inferior a 0 producir un error 380 en tiempo de ejecucin, la descripcin
del error es:
El valor de la propiedad no es vlido

El ProgressBar no tiene ninguna Propiedad para medir el porcentaje. Para el ejemplo


anterior podramos hacerlo de esta manera, y mostrar adems de la barra de progreso,
un porcentaje del mismo utilizando un control Label, como muestra este grfico:

Private Sub Command1_Click()

'Le establecemos un valor para el mximo


ProgressBar1.Max = 50500
For i = 0 To ProgressBar1.Max
' Valor actual del Progressbar
ProgressBar1.Value = i

' Visualizamos el porcentaje en el Label


Label1 = CLng((ProgressBar1.Value * 100) / ProgressBar1.Max) &
" %"

DoEvents
Next
End Sub

4 - Propiedad Scrolling
Para cambiar el aspecto grfico del Progressbar, hay una propiedad llamada Scrolling.
Esta tiene 2 valores posibles, 0 y 1.
Si le colocamos esta propiedad en 0, el Progress tendr una vista dividida por
recuadros. Si tiene el valor 1, la barra de progreso es continua, como se ve en la
siguiente imagen

5 - Ejemplo 2
Ahora un ejemplo que tenga algn sentido mas prctico que el visto al comienzo (por
lo menos un poco mas de sentido)

Este consiste en agregar en un control ListBox la fecha de modificacin de todos los


archivos de un directorio, y mostrar en la barra de progreso el tiempo que tarda.
Para este ejemplo hay que agregar un control DirListBox llamado Dir1, un FileListBox
File1, un Progressbar1, un Label1, un ListBox llamado List1 y un Command1 como est
en la imagen:

El cdigo fuente del formulario es el siguiente:

Private Sub Command1_Click()

'Borrmos el contenido del ListBox


List1.Clear
'Si no hay archivos en el directorio salimos de la rutina
If File1.ListCount = 0 Then
MsgBox "No hay archivoes en el directorio": Exit Sub
End If
'Le indicamos como valor mximo al progressbar la cantidad _

de archivos que tiene el control


ProgressBar1.Max = File1.ListCount

For i = 0 To File1.ListCount - 1
'Agregamos la fecha de modificcin del archivo en el List1 _
con la funcin FileDateTime de visual basic
List1.AddItem FileDateTime(Dir1.Path & "\" & File1.List(i))
'Asignamos al Value el valor de i
ProgressBar1.Value = i + 1
'Mostramos el porcentaje en el Label1
Label1 = CLng((ProgressBar1.Value * 100) / ProgressBar1.Max) & " %"

DoEvents
Next
End Sub
Private Sub Form_Load()
'Le indicamos al FileListBox que liste todos los ficheros, _
ocultos, de sistema etc...
With File1
.Archive = True
.Normal = True
.ReadOnly = True
.Hidden = True

.System = True
End With

End Sub
Private Sub Dir1_Change()
File1 = Dir1
End Sub

En el ejemplo anterior, se visualiza por medio de un DirListBox y un FileListBox, los


archivos de la pc. Al presionar el Command1 se recorre toda la lista del control File1
(mediante la propiedad List) y se recupera y se agrega con la funcin FileDateTime
de Visual Basic la fecha de modificacin de los archivos en el control ListBox.
Nota: Tener en cuenta que al listar un directorio que tiene pocos archivos, el progreso
no se podr visualizar ya que va a ser muy rpido, en cambio si lists un directorio con
muchos ficheros, como por ejemplo el directorio de sistema de windows ( System32 en
xp ), el progreso lo vas a poder visualizar correctamente.
Hay otras propiedades como se mencionaron para este control, pero no son
importantes, y estn mas relacionadas a la visualizacin y disposicin del mismo, como
Orientation, BorderStyle, Scrolling etc...

6 - Barra de progreso con los temas de xp

Una forma de poder aplicar los diferentes temas de windows Xp a las barras de
progreso, es mediante el siguiente control ocx gratuito que los pods descagrar desde
este enlace : Ocx Windows XP C1

Vista de los diferentes estilos


Tema Win XP OliveGreen ( verde oliva )

Tema Win XP Silver Theme ( plateado )

Tema Win XP Silver Theme ( Clsico )

Você também pode gostar