Color

From Xojo Documentation

Data Type


The data type for storing color values with an optional alpha component. The default value of a Color is &c000000 (black).

Constants
Black Gray Red
Blue Green Teal
Brown LightGray White
Clear Magenta Yellow
Cyan Orange
DarkGray Purple
Properties
Alpha fa-lock-32.png Hue fa-lock-32.png Value fa-lock-32.png
Blue fa-lock-32.png Magenta fa-lock-32.png Yellow fa-lock-32.png
Cyan fa-lock-32.png Red fa-lock-32.png
Green fa-lock-32.png Saturation fa-lock-32.png
Methods
ToString
Shared Methods
CMY FrameColor LightBevelColor
DarkBevelColor FromString LightTingeColor
DarkTingeColor HSV RGB
DisabledTextColor HighlightColor SelectedFromDialog
FillColor IsDarkMode TextColor

Notes

Colors are often used to assign colors to properties of type Color. Use the RGB, HSV, or CMY functions to assign a color to an object or use the format:

&cRRGGBB

In the above, RR is the RGB value of Red in hexadecimal, GG is the value Green in hexadecimal, and BB is the value of Blue in hexadecimal. You can right-click in the Code Editor and select Insert Color to choose a color using the color picker, which will insert the hexadecimal value at the cursor position in the editor.

Desktop, Web and Console projects can also use the CMY function to set the color using cyan, magenta and yellow elements. The CMY function is not available for iOS projects.

You can use the VarType function to determine whether a property or a variable is a Color. If it is, VarType returns 16.

Color Values to/from Hex Strings

Use the ToString function to get the hexadecimal RGB value of a Color:

Var c1 As Color
c1 = Color.RGB(255, 100, 50)
Var hexColor As String = c1.ToString // hexColor = &h00FF6432

Note that a hex color has the alpha value at the front instead of the end like an &c color does.

To convert a hexadecimal color value back to a Color, use the FromString shared method like this:

// hexColor is the String from above that contains a hex color value
Var c2 As Color = Color.FromString(hexColor)

Alpha Channel Support

The Color type has a read-only "Alpha" property. The alpha channel is the transparency of the color represented as an integer between 0 (opaque) and 255 (transparent).

The Color literal syntax can optionally have two more hexadecimal digits at the end representing the alpha channel (for example, "&cFF00007F"). If the color literal has only 3 channels of information, the alpha component defaults to 0.

&cRRGGBBAA

The RGB, HSV, and CMY functions also have an optional integer parameter that specifies the alpha channel for the Color.

Sample Code

The following example uses the RGB model to set the DrawingColor property of a Canvas control and draw a square using the current DrawingColor. The code is placed in the Canvas control's Paint event.

g.DrawingColor = Color.RGB(255, 0, 0)
g.DrawRectangle(0, 0, 50, 50)

The following example (in a Canvas Paint event) assigns a color directly using the RGB color model. The RGB values must be specified in hexadecimal:

g.DrawingColor = &cFF0000
g.DrawRectangle(0, 0, 50, 50)

The following example uses the CMY model to set the fillcolor of a Rectangle control, r.

r.FillColor = Color.CMY(0.1, 0.3, 0.5)

The following example inverts the fillcolor:

Var c As Color
c = Color.RGB(255 - r.FillColor.Red, 255 - r.FillColor.Green, 255 - r.FillColor.Blue)
r.FillColor = c

See Also

Str, Val, VarType functions; &c literal; ColorGroup class