El color en Visual Basic 6.0 está definido por el sistema R.G.B. RGB proviene de las iniciales de Red-Green-Blue, y cada valor de cada color ocupa 1 byte (de 0 a 255), expresado en sistema hexagesimal (0 a 255, 00 a FF). El color ocupa 4 byes en la memoria: 1 para cada color (1 para Rojo, 1 para Verde y 1 para Azul) y un byte extra.
Los distintos colores surgen de los valores dados a cada una de las componentes de RGB, o sea que la cantidad de colores que se pueden formar es muy amplia.
Constantes de color.
Visual Basic 6.0 dispone de una serie de constantes de colores, las cuales se han utilizado en ejemplos anteriores, al grupo de estas constantes se lo denomina ColorConstants y contiene las constantes que se encuentran en la tabla 6.
Estas constantes son algunos de los colores más usuales del sistema RGB, sin embargo es bastante limitado ya que con el sistema RGB se pueden obtener millones de combinaciones y por lo tanto millones de colores.
Tabla 6 - Constantes de Colores |
Color |
Constante |
Valor |
Negro |
vbBlack |
0 |
Blanco |
vbWhite |
16777215 |
Amarillo |
vbYellow |
65535 |
Verde |
vbGreen |
65280 |
Rojo |
vbRed |
255 |
Azul |
vbBlue |
16711680 |
Turquesa |
vbCyan |
16776960 |
Magenta |
vbMagenta |
16711935 |
Función RGB.
Existe una función con la cual obtener en cualquier color del sistema RGB y es mediante la función RGB. Esta función tiene por argumento los tres valores de las componentes R.G.B., que pueden tomar un valor de 0 a 255. Si se le da un valor mayor que 255, se toma el valor 255.
La forma general de la función RGB es la siguiente:
RGB(rojo as Integer,verde as Integer, azul as Integer)
Ahora se presentan los valores de la función RGB para algunos colores:
RGB |
Color |
RGB(0,0,0) |
Negro |
RGB(255,255,255) |
Blanco |
RGB(255,0,0) |
Rojo |
RGB(0,0,255) |
Azul |
RGB(0,255,0) |
Verde |
RGB(0,255,255) |
Turquesa |
Ejemplo
Crea un nuevo proyecto estándar y coloca los siguientes controles:
Control |
Propiedad |
Valor |
ListBox |
Name |
lstColor |
Label |
Name |
lblHex |
" " |
Caption |
000000 |
Label |
Name |
lblDec |
" " |
Caption |
0-0-0 |
Scroll Bar |
Name |
hsbColor |
" " |
Index |
0 a 2 |
" " |
Min |
0 |
" " |
Max |
255 |
" " |
Value |
0 |
Escribe el siguiente código en la ventana de código:
Private Sub Font_Load()
lstColor.BackColor=vbBlack
End Sub
Private Sub hsbColor_Scroll(index as Integer)
lstColor.BackColor=RGB(hsbColor(0).Value,hsbColor(1).Value,hsbColor(2).Value)
lblDec.Caption=hsbColor(0).Value &"-"& hsbColor(1).Value &"-"& hsbColor(2).Value
lblHex.Caption=Hex(hsbColor(0).Value) & Hex(hsbColor(1).Value) & Hex(hsbColor(2).Value)
End Sub
Pulse F5 para probar la aplicación.
La barra de desplazamiento de índice 0 da valor al argumento rojo de la función RGB, la de índice 1 da valor al argumento verde y la de índice 2 da valor al argumento azul.
La etiqueta lblDec contiene los valores de la función R-G-B y la etiqueta lblHex contiene esos valores convertidos al sistema Hexagesimal. En el lenguaje HTML, por ejemplo, los colores se representan en el sistema RGB con esta notación Hexagesimal.
Otra forma de definir el color es con la siguiente notación:
&H00FFFF&
RGB(255,255,0)
Los colores están determinados en sistema Hexagesimal por 6 caracteres entre la H y el signo & (00FFFF). Este color representa el amarillo y los dos primeros caracteres (00) representan al color azul, los dos siguientes al verde y los dos últimos al rojo.
Variables de color.
Los colores que se representan con las constantes de color de Visual Basic 6.0 se pueden almacenar en un tipo de variable declarada como ColorConstants. Un color cualquiera, por ejemplo, el que se obtiene con la función RGB se almacenan en una variable de tipo Long.