Sección de controles Ocx para Visual basic , Dll , Activex

142 - Barra de progreso con formulario modal

<Volver> - Anterior - Siguiente



 

Módulo de clase para usar un Progressbar mediante un formulario que se muestra en forma modal

 

Ejemplo

vista del proyecto visual basic para usar la barra de progreso

 

En realidad el formulario para mostrar el progreso, no se visualiza en forma Modal con el párametro vbModal del método Show de los formularios

UnForm1.Show vbModal

 

.. pero es similar, ya que al llamar al form que actúa como barra de progreso, se deshabilita el formulario que lo utiliza, es decir el que lo llama, y hasta que no se termine de ejecutar el progreso o se cancele mediante el método Terminar , no se puede volver al form principal

Si bien en el zip de descarga tiene un ejemplo para usar el módulo, detallo como usarlo

 

Antes que nada , hay que crear una instancia del módulo, por ejemplo :

Set obj = New Class1

 

Luego de creada la instancia, se pueden establecer algunas propiedades opcionales, como por ejemplo el BackColor del progreso y de la barra, el color del caption que visualiza el porcentaje y algunas otras

obj.ColorPercent = vbWhite
obj.TextoProgreso = True
obj.ProgressColor = vbBlue
obj.BackColor = vbBlack

 

Antes de comenzar a usarlo para medir un proceso , se debe obligatoriamente ejecutar el método Init e indicar dos párametros que son los siguientes

obj.Init Me, FrmProgreso

 

El primer parámetro es el formulario que usa el módulo, es decir el form actual y siempre se va a enviar la palabra Me para hacer referencia a nuestro form.

El otro parámetro, es el form que se usa para la barra. Este form es un form vacio, es decir sin ningún control y sin código

Luego de indicar lo anterior, ya se puede establecer el valor máximo y el valor mínimo, y una ves que se asigna el value:

Obj.Value = Valor

 

.. automáticamente ya se despliega el formulario.

 

Una ves que se llega al máximo del progreso, el form que hace de progress, finaliza y se descarga. Pero tener en cuenta que si se desea salir del proceso por x motivo, se debe ejecutar obligatoriamente el método " Terminar " en el momento que se desee, y de esta forma se podrá descargar dicho form, y volver a habilitar el formulario principal

obj.Terminar

 

Nota :Si se quiere dentro de un mismo procedimiento o función, medir mas de un proceso, cada ves que se desee mostrar la barra, se debe ejecutar obligatoriamente el método Init, por ejemplo si voy a medir dos procesos podria ser asi

    ' Proceso 1
    '''''''''''''''''''''''''''''''''''''''''''''
    Call obj.Init(Me, FrmProgreso)
    obj.Max = 10000
    obj.Min = 0
    
    For i = obj.Min To obj.Max
        ' muestra el progreso
        obj.Value = i
    Next 

'....Fin de proceso 1

 

Ahora el segundo proceso volviendo a ejecutar init y estableciendo el máximo y mínimo valor

    ' Proceso 2
    '''''''''''''''''''''''''''''''''''''''''''''
    Call obj.Init(Me, FrmProgreso)
    obj.Max = 50000
    obj.Min = 0
    
    For i = obj.Min To obj.Max
        ' muestra el progreso
        obj.Value = i
    Next 

 

Por último descargar el módulo y ejecutar el método Terminar

'termina y descarga el form de Progreso
obj.Terminar

 

Nota importante: siempre colocar una rutina de error, por las dudas de que se produzca uno, para ejecutar le método Terminar y de esta forma descargar el form de progreso y poder reestablecer el form principal.

 

Descargar Módulo

 


Enlaces relacionados

 

 


Buscar en Recursos vb con Google