arroba más más - Programación e Internet  arroba más más - Programación e Internet
Estás en: Inicio > Cursos > Entornos de desarrollo > El entorno Delphi > Curso básico de Delphi > - El control StatusBar
 
CAPÍTULOS

SECCIONES

SITIOS RECOMENDADOS

OTROS SITIOS DE LA AUTORA

En línea desde el 7 de noviembre de 2000

4.II El control StatusBar

Se denomina barra de estado a un área de la ventana, normalmente situada en la parte inferior, que sirve para mostrar mensajes e indicadores de estado.

Se puede construir una barra de estado mediante un control TPanel, por ejemplo, dando un valor adecuado a la propiedad Align para que éste se sitúe en el lugar apropiado.

Delphi, sin embargo, incorpora en la página Win32 de la Paleta de componentes un control llamado TStatusBar: El control StatusBar en Delphi - Paleta Win32. Al colocarlo en un form, automáticamente se situará en la parte inferior del form, ocupándolo de izquierda a derecha. En el extremo derecho inferior de la barra de estado, que tiene la altura precisa para mostrar una línea de texto, existe una esquina con varias líneas en diagonal, que indican que el form se puede coger por ese punto para ser redimensionado. Esta característica y algunas más, las podemos establecer mediante las propiedades de control TStatusBar. En la siguiente tabla se pueden ver algunas de ellas.

PropiedadesTipoContenido
PanelsTStatusPanelsReferencia a un objeto TStatusPanels
SimplePanelBooleanIndica si la barra de estado contiene sólo una línea de texto
SimpleTextStringTexto a mostrar en la barra de estado
SizeGripBooleanIndica si existe la esquina de cambio de tamaño

Una barra de estado simple

Si vamos a usar el control TStatusBar para crear una barra de estado simple, en la que sólo se muestra un mensaje, tan sólo hemos de dar el valor True a la propiedad SimplePanel, asignando el texto a mostrar a la propiedad SimpleText. En tiempo de ejecución bastará con modificar el valor de esta última propiedad para mostrar un texto diferente. También podemos hacer desaparecer el mensaje que está actualmente visualizando simplemente asignando el valor False a la propiedad SimplePanel, haciéndolo aparecer de nuevo devolviendo a esta propiedad el valor True.

La propiedad SizeGrip es la que establece la existencia o no en la barra de estado de la esquina con líneas en diagonal, que indica que es posible el cambio de tamaño del form. Por defecto esta propiedad tiene el valor True, indicando que sí es posible esa acción. Debemos dar el valor False a SizeGrip en caso de que la ventana que estamos usando sea de tamaño fijo.

Múltiples paneles en la barra de estado

Un control TStatusBar puede contener una o más secciones, a las que se denomina paneles.

La propiedad Panels del control TStatusPanel es un objeto de tipo TStatusPanels. Este objeto, en realidad, es una colección de objetos TStatusPanel y cuenta con una propiedad Count, que nos sirve para saber cuántos paneles existen, y los métodos precisos para poder añadir nuevos paneles, Add, y eliminar los existentes, Clear.

Además, el objeto TStatusPanels dispone de una propiedad indexada, llamada Items, que es la que permite acceder a cada uno de los elementos de la colección.

Por lo tanto cada uno de los elementos TStatusPanels define una sección de la barra de estado, basándose en las propiedades que se comentan en la siguiente tabla. Si la propiedad Style contiene el valor psText, será alineado según indique la propiedad Alignment, que como en otros controles puede tomar los valores taLeftJustify, taCenter y taRightJustify. El ancho del panel se especificará en puntos en la propiedad Width, pero el último panel, el que quede en el extremo derecho, siempre ocupará el resto de la barra. Mediante la propiedad Bevel indicaremos si el panel debe aparecer hundido en la barra, pbLowered resaltado, pbRaised, o al mismo nivel, pbNone.

PropiedadTipoContenido
AlignmentTAlignmentAlineación del texto en el panel
BevelTStatusPanelBevelApariencia del panel en la barra
StyleTStatusPanelBevelEstilo del panel
TextStringTexto a mostrar en el panel
WidthIntegerAnchura del panel

En caso de que asignemos el valor psOwnerDraw a la propiedad Style de un TStatusPanel, ese panel no contendrá un texto, sino que deberá ser dibujado por nuestro propio programa.

Cada vez que el panel deba ser dibujado, el control TStatusBar generará un evento OnDrawPanel, pasando tres parámetros al procedimiento correspondiente.

El primero de estos parámetros será de tipo TStatusBar y hará referencia al control TStatusBar que ha generado el evento. El segundo será de tipo TStatus, conteniendo una referencia al panel que debe ser dibujado. Por último encontramos un parámetro de tipo Rect, conteniendo los límites de la zona de dibujo.

Definir paneles en tiempo de diseño

En la mayoría de las ocasiones es posible definir los paneles de un control TStatusBar en tiempo de diseño, para lo cual deberemos hacer una doble pulsación sobre la propiedad Panels, abriendo el correspondiente editor.

En la ventana que aparece, tendremos que pulsar el botón Add por cada nuevo panel que deseemos crear, indicando a continuación el estilo, su anchura, aspecto y texto, en el Inspector de Objetos como cualquier otra propiedad.

Definir paneles en tiempo de ejecución

La creación de los paneles de una barra de estado en tiempo de ejecución, en lugar de hacerlo en tiempo de diseño, tiene la ventaja de que el usuario puede configurar la barra de estado. Para ello disponemos de dos métodos, Add y Clear. Cada vez que llamemos al método Add se creará un nuevo objeto de tipo TStatusPanel en la barra de estado. Si llamamos al método Clear, se eliminarán todos los paneles existentes en ese momento.

Autor: Lola Cárdenas Luque
Última actualización: 24 de junio de 2001
- El control RichEdit | - El control TrackBar
Copyright © 2000 - 2005, Lola Cárdenas Luque - Todos los derechos reservados