Color
Sets the display foreground / background color that is used with console output and graphics output of text
Syntax
`
Declare Function Color ( ByVal foreground As Integer , ByVal background As Integer ) As Integer
`
Usage
`
Color [foreground] [, background]
result = Color [( [foreground] [, background] )]
`
Parameters
`foreground`
the foreground color to set
`background`
the background color to set
Return Value
Returns a 32 bit `Integer` containing the current foreground color in the Low Word and the current background color in the High Word. (In hi/truecolor modes, only the foreground color is returned, taking up the whole 32 bits.)
The old color values can be retrieved at the same time as setting new ones.
Description
The `Color` statement sets the current foreground and/or background colors. `Circle`, `Draw`, `Line (Graphics)`, `Cls`, `Paint`, `Print`, `PReset` and `PSet` all use the last colors set by this function when you don't specify a color to them, where applicable. The color values that `Color` accepts depend on the current graphics mode.

Mode | Meaning
1 | foreground is screen color (ranging 0-15). background is the emulated CGA palette to be used: 0 (green, red, and brown), 1 (cyan, magenta and white), 2 (same as 0, but with bright colors) or 3 (same as 1, but with bright colors)
2, 11 | foreground is a color index in current palette (ranging 0-1). background is a color index in current palette (ranging 0-1).
7, 8 | foreground is a color index in current palette (ranging 0-15). background is screen color index in current palette (ranging 0-15).
9 | foreground is a color index in current palette (ranging 0-63). background is screen color index in current palette (ranging 0-63).
12 | foreground is a color index in current palette (ranging 0-15). background is a color index in current palette (ranging 0-15).
13 and up | foreground is a color index in current palette (ranging 0-255). background is a color index in current palette (ranging 0-255).

If you are using a color depth higher than 8bpp, foreground and background are direct `RGB` color values in the form `&hAARRGGBB`, where `AA`, `RR`, `GG` and `BB` are the alpha, red, green and blue components ranging `&h00`-`&hFF` (`0`-`255` in decimal notation). While in hi/truecolor modes, you can use the `RGB` or `RGBA` macro to obtain a valid color value.
A Default Palette is automatically set when entering a `Screen` mode.
Example
`
' Sets 320x240 in 32bpp color depth
Screen 14, 32
' Sets orange foreground and dark blue background color
Color RGB(255, 128, 0), RGB(0, 0, 64)
' Clears the screen to the background color
Cls
' Prints "Hello World!" in the middle of the screen
Locate 15, 14
Print "Hello World!"
Sleep
`
`
Dim c As UInteger
'retrieve current color values
c = Color()
'extract color values from c using LOWORD and HIWORD
Print "Console colors:"
Print "Foreground: " & LoWord(c)
Print "Background: " & HiWord(c)
`
Differences from QB

- Direct color modes were not supported in QB.
- There is no border argument.

See also

- `RGB`
- `RGBA`
- `LoWord`
- `HiWord`
- `Locate`
- `Palette`
- `Screen`