Color de fondo de un control esté condicionado a su contenido

Color de fondo de un control esté condicionado a su contenido

Al diseñar un formulario o un diálogo mediante Basic quizás precises hacer que el color de fondo de un control esté condicionado a su contenido.

Dicho de otra forma: imaginemos un control de lista combinado (combobox) o un control de listado que muestra los nombres de las provincias, y deseamos que si se selecciona en él una provincia, por ejemplo, que empiece por una letra entre la A y la L, se muestre de un color, mientras que si comienza por una letra entre la M y la P se muestre de otro, y en un tercero para el resto de los casos.

Por supuesto que este ejemplo es bastante inútil, pero sólo es un ejemplo de cómo podemos hacer que el color de fondo de un control esté condicionado a su contenido.

¿Te atreves?

 

Ejemplo en Base donde el Color de fondo de un control esté condicionado a su contenido

Ponte manos al asunto. Sigue este minitutorial y crea un modelo para experimentar.

La tabla PROVINCIAS

Crea una tabla en tu base de datos que llamarás PROVINCIAS, con al menos un campo ID entero y un campo DESCRIPCION de tipo texto.

Haz que el campo ID sea clave primaria.

Color de fondo de un control esté condicionado a su contenido - Tabla de la base de datos

Rellena la tabla con algunas provincias.

La macro que hará el trabajo

Desde el menú Herramientas > Macros > Organizar macros > OpenOffice Basic... agrega un nuevo módulo a tu base de datos haciendo clic sobre el botón Nuevo.

En el nuevo módulo, teclea o preferiblemente copia y pega este código:

Sub ColorFondoControl( oEv )
    ' Cambia el color de fondo
    Dim Propiedades As Object
    Propiedades = oEv.Source.Model
    With Propiedades
        Select Case Left(.CurrentValue,1)
        Case "A" To "L"
            .BackgroundColor = RGB(255,100,100)
        Case "M" To "P"
            .BackgroundColor = RGB(100,100,255)
        Case Else
            .BackgroundColor = RGB(100,255,100)
        End Select
    End With
End Sub
Color de fondo de un control esté condicionado a su contenido - macro

El formulario CONTROL_FONDO_COLOR

Ahora crea un nuevo formulario en modo diseño.

Añade al formulario un control de tipo Cuadro combinado, que deberás asociar al campo DESCRIPCION de la tabla PROVINCIAS.

Añade también un control de tipo Listado que asociarás al mismo campo de la misma tabla.

Los asistentes te permitirán hacerlo fácilmente, y no olvidemos que esto es sólo un ejemplo de pruebas.

Su utilidad sólo es esa, ser un ejemplo.

Color de fondo de un control esté condicionado a su contenido - El formulario y los controles

Asigna a los eventos siguientes la macro CuadroFondoControl desde su Menú contextual > Campo de control > Acontecimientos

  • Evento Texto modificado del control cuadro combinado
  • Evento Modificado del control listado
Color de fondo de un control esté condicionado a su contenido - Asignar macro al evento del cuadro combinado
 
Color de fondo de un control esté condicionado a su contenido - Asignar macro
 
Color de fondo de un control esté condicionado a su contenido - Asignar macro
 
 
Color de fondo de un control esté condicionado a su contenido - Asignar macro al evento de control listado

Guarda el formulario con el nombre COLOR_CONTROL_FONDO, por ejemplo.

Ejecutar el ejemplo donde el Color de fondo de un control esté condicionado a su contenido

Ejecuta el formulario y selecciona, bien en el cuadro combinado, bien en el listado, distintas provincias.

Verás como su color de fondo cambia según la opción seleccionada.

Color de fondo de un control esté condicionado a su contenido

Descargar la base de datos de ejemplo

Puedes hacer clic en el siguiente enlace para descargar la base de datos de ejemplo:

  Descargar 'mi_base_de_datos.odb' 

No hay reacciones, todavía


Form is loading...