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.
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
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.
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
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.
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'