Vous êtes sur la page 1sur 10

Principio del formulario

00615421140940 FORID:11 Buscar

Final del formulario

Sección de tutoriales y manuales vb

Control ProgressBar - Barra de progreso


Volver al índice

Guía con ejemplos para usar el control Progressbar de Visual basic

• Descripción 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 - Descripción 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 rápida y fácil, mediciones de progreso de una determinada tarea

2 - Propiedad Value , Max y Min


Este control posee 3 propiedades fundamentales para trabajar en el código 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 máximo para la barra o proceso

• Min : Establece el valor mínimo.


Nota: Este control también posee otras propiedades, pero que no son determinantes y que están relacionadas
mas a su aspecto gráfico.

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 propiedadValue del control.
Al Progressbar, en la propiedad Min le establecemos el valor 0. A la propiedad Max el valor máximo 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 Botón de comando llamado Command1

• 1 Un control ProgressBar con el nombre ProgressBar1

Pegar el siguiente Código 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
' UsamosDoEvents 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 mínimo, máximo valor del Progress bar
With ProgressBar1

.Max = 5000
.Min = 0
.Value = 0

EndWith

End Sub

Las propiedades Min y Value pueden establecérsele valores como mínimo de 0, osea que un valor inferior a 0
producirá un error 380 en tiempo de ejecución, la descripción del error es:
El valor de la propiedad no es válido

El ProgressBar no tiene ninguna Propiedad para medir el porcentaje. Para el ejemplo anterior podríamos hacerlo
de esta manera, y mostrar además de la barra de progreso, un porcentaje del mismo utilizando un control
Label, como muestra este gráfico:
Private Sub Command1_Click()

'Le establecemos un valor para el máximo


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 gráfico del Progressbar, hay una propiedad llamadaScrolling. 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 algún sentido mas práctico que el visto al comienzo (por lo menos un poco mas de
sentido)
Este consiste en agregar en un control ListBox la fecha de modificación 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 código 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 máximo 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 modificción del archivo en el List1 _


con la función 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 funciónFileDateTimede Visual Basic la fecha de modificación 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 rápido, en cambio silistás 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 están mas
relacionadas a la visualización y disposición 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 windowsXp a las barras de progreso, es mediante el
siguiente control ocx gratuito que los podésdescagrar 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 SilverTheme( Clásico )

6 - Recursos Visual basic - Rrelacionados

• Listado de enlaces varios sobre barras de progreso

Volver al menú sobre los controles de Visual basic

Buscar en Recursos vb
Principio del formulario

00615421140940 FORID:11 Buscar

Final del formulario


Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar

• Inicio
• Ejemplos vb
• Ocx - Activex
• Api vb
• Tutoriales - Manuales
• Código fuente
• Ejemplos vb.net

Vous aimerez peut-être aussi