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

223 - Barra de estado con skin - Control

<Volver> - Anterior - Siguiente



 

 

 

 

 

 

 

 

 

 

 

-- > Links

 

 

 

 


Descripción

Este es un control para utilizar barras de estado que permite establecerle un skin para cambiar el estilo y la apariencia. El control es mas simple que el statusbar de visual basic, aunque contiene las propiedades y opciones básicas para poder crear paneles y mostrar datos e información del programa.

Las opciones que SI se pueden utilizar son

 

Algunas de las opciones que NO permite el control son :

 

 

 

 

Propiedades , métodos y eventos


Métodos

AddPanel

Este es el método principal y sirve para crear un nuevo panel. Tiene los siguientes parámetros todos opcionales

Sub AddPanel( _
    Optional sText As String, _
    Optional sKey As String, _
    Optional lWidth As Long = 96, _
    Optional ByVal lForeColor As Long = -1, _
    Optional lBackColorPanel As Long = -1, _
    Optional lBorderColorPanel As Long = -1, _
    Optional ByVal bBold As Boolean) 

Descripción de los parámetros

 

Notas :

 

 

ChangeTextPanel

Función para cambiar el texto de un panel (sería como la propiedad Text del objeto panels del control statusbar de vb.)

Se le debe indicar el nuevo texto y el índice del panel a modificar.

Por ejemplo esto crea dos paneles de 120 pixeles de ancho al cargar el programa, y luego le cambia el texto al presionar un botón.

Private Sub Form_Load()
    ' -- crear dos nuevos paneles de 120 pixeles par el primero, y 200 pixeles para el 2
    With ucStatusBar1
        .AddPanel "Panel 1", , 120
        .AddPanel "Panel 2", , 200
    End With
    
End Sub

' -- Botón para cambiar los dos paneles anteriores
' ------------------------------------------------------------
Private Sub Command3_Click()
    With ucStatusBar1
        ' -- Cambiar el que tiene Indice 1
        Call .ChangeTextPanel("Nuevo valor", 1)
        ' -- Cambiar el que tiene Indice 2
        Call .ChangeTextPanel("Nuevo valor", 2)
    End With
End Sub  

 

ClearPanels

Para eliminar todos los paneles de la barra de estado

' \\ -- Eliminar
' --------------------------------------------
Private Sub cmdClear_Click()
    With ucStatusBar1
        call .ClearPanels
    End With
End Sub  

 

ClearPanelByIndex , ClearPanelByKey

Para eliminar un panel, ya sea por la clave o por el índice.

SetControlPanel

Esta función es para poder colocar un control en un panel, por ejemplo un ProgressBar. ( En el final de la página hay un ejemplo )

Importante. No se puede color cualquier tipo de control, ya que algunos, al incrustarlos, ya no se puede volver a referenciarlos desde el formulario, por ejemplo si se incrusta un botón o CommandButton, se coloca correctamente en el panel, pero por ejemplo el evento Clic ya no responde.

 

SetProgressBarColor

Función o método para cambiar el color de fondo y las líneas de progreso para un control Progressbar utilizando la Api de windows SendMessage.

Esta función es para adaptar el Progress a la apariencia que tenga el skin actual. Nota. Se puede establecer la propiedad Border Style del Progressbar en 0,y la propiedad Apariencia en Flat, para que el control quede con el borde del panel. (En la versión 5 del windows CommonControls, no se puede eliminar completamente el borde directamente desde vb, a no ser utilizando algún método con la api de windows.)

ShowToolTipPanel

Este método muestra un BalloonTip de información para un panel

Nota. El BalloonTip solo se visualiza cuando el programa se encuentra compilado. También, el ejecutable debe tener un archivo Manifest y haber ejecutado la función Api InitCommonControls desde el punto de inicio del programa ( procedimiento SubMain o Evento Initialize del formulario principal de la aplicación ) para poder establecer el tema de windows. Otra cosa importante, es que si utilizas el ejemplo de esa página, creo que solo funciona con controles de clase "Edit" , por ejemplo un control TextBox, un control ComboBox, y cualquier otro que contenga un control de este tipo, por ejemplo un ImageCombo (aunque no lo he probado.)

A la función hay que indicarle la duración en milisegundos, el texto, el título y el ícono o tipo de BalloonTip ( el tipo puede ser con ícono de error, de información, advertencia o simple, es decir sin ícono)

También se debe indicar el índice del panel en donde se desplegará. ( Al final de la página hay un ejemplo simple de como mostrar un BalloonTip en un panel ).

 

Propiedades

El control prácticamente no contiene propiedades.

 

Nota. Para crear un estilo propio es muy simple, y se debe crear una imagen de 15 pixeles de ancho por 23 de alto. :

Por ejemplo asi : Imagen ampliada ( El borde debe ser de un pixel de grosor, )

Luego para cargarlo en tiempo de ejecución , es con la propiedad CustomSkin y utilizando la instrucción set de visual basic

Si se carga desde una imagen ubicada en el disco, usando el método LoadPicture

    With ucStatusBar1

Set .CustomSkin = LoadPicture("ruta de la imagen")

End With

 

Eventos

Tiene los eventos básicos. El principal, es Panel Click que se produce al hacer clic en un panel, se puede utilizar para desplegar por ejemplo un menú popup.

 


Descargar - Ejemplos

 

Mostrar hora y fecha

Este ejemplo muestra la hora y fecha en un panel, y también utiliza una clase para modificar la apariencia de un ToolBar.

Nota: para el panel que muestra la hora, se debe utilizar un timer y dentro del timer cambiar el texto con la función ChangePanelText, ya que no tiene implementado una propiedad que permite hacerlo en forma automática, como por ejemplo el estilo sbrTime que posee la barra de estado de vb.

 

Descargar

 

 


Mostrar barra de progreso en panel

Ejemplo para descargar un archivo, y visualizar en el panel con índice 1 el total del archivo, en otro panel los bytes leídos, y en el panel con índice 3 la barra de progreso.

Notas.

 

Descargar

 

 


Búsqueda de archivos

Formulario para buscar archivos, que al iniciar la búsqueda, crea un un panel para ver la ruta completa del archivo actual, y cuando finaliza y temina de buscar, crea tres paneles para visualizar los detalles : El total de archivos encontrados, la cantidad de carpetas encontradas, y el tamaño total del directorio.

 

Descargar

 

 


Mostrar BallonTip

Este ejemplo , busca nodos o items en un control Treeview, si el término a buscar no se encuentra, entonces despliega un BallonTip, si no, muestra en el panel el path completo del nodo ( propiedad FullPath del Treeview ). Nota. el BallonTip funciona con el programa compilado y con un archivo manifest.

Descargar

 

 

 


Mostrar Procesos

Ejemplo que obtiene los procesos abiertos de windows, y crea tres paneles para mostrar : El nombre, el identificador y la ruta.

Descargar

 

 

 


Editar un Grid

Ejemplo que utiliza un Grid ( Ms FlexGrid ) para cargar unos registros de una tabla, e imprime alguna información en el status bar

Los datos que muestra son : La cantidad de registros, el ID y en el tercer panel el campo nombre / apellido de la tabla. También incluye otro control para las opciones : Nuevo registro, Eliminar y editar: Simple ToolBar

Descargar

 

 


Explorer

Este es un Explorer y utiliza dos paneles: Uno para mostrar la cantidad de archivos y carpetas del path actual, y en otro el nombre del fichero o directorio seleccionado

Descargar

 

 


Sumar valores en Grid

Carga un grid con registros donde un campo es de tipo moneda, y se crea un panel para mostrar el total de la columna, es decir la suma.

Descargar

 

 


Mdi

Ejemplo que usa el StatusBar en un MDI, y visualiza el nombre de los formularios hijos al activarse la ventana

Descargar

 


Usar el StatusBar con otros controles

Dos ejemplos para poder usarlos con otros controles, es decir poder crear la imagen de Skin para la barra de estado usando la propiedad CustomPicture.

 

Descargar

 

 

Descargar

 


Créditos y referencias

Créditos del proyecto:

Referencias:

Para usar el control no se necesita de ninguna referencia o archivo externo.

Para usarlo en un nuevo proyecto, se debe importar el archivo ucStatusBar.ctl desde el menú Proyecto, submenú Agregar control de usuario, y desde la ventana de diálogo seleccionar la pestaña existente . Nota. junto al archivo ucStatusBar.ctl, debe estar también el archivo ucStatusBar.ctx que es el que contiene las imágenes, ya que si no dará error al importar el control a un formulario.


Relacionados

 

 


Buscar en Recursos vb con Google