Está en la página 1de 9

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

Nota: en el siguiente enlace se encuentra un listado con enlaces relacionados : Progressbar enlaces

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 las propiedades para el mnimo, mximo valor del Progress bar
With ProgressBar1

.Max = 5000
.Min = 0
.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 )

6 - Recursos Visual basic - Rrelacionados

También podría gustarte