Buenas julyus, pues la verdad es que no hay muchos colores para escoger: rojo, verde, azul y la suma de ellos (bueno, y la ausencia que es el negro). Eso sí tienen una "variante" brillante:
un ejemplo
Código Delphi
[-]program Colores;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
const
Fondo_Rojo = BACKGROUND_RED;
Fondo_Azul = BACKGROUND_BLUE;
Fondo_Verde = BACKGROUND_GREEN;
Fondo_Amarillo = BACKGROUND_RED or BACKGROUND_GREEN;
Fondo_Magenta = BACKGROUND_RED or BACKGROUND_BLUE;
Fondo_Agua = BACKGROUND_BLUE or BACKGROUND_GREEN;
Fondo_Blanco = BACKGROUND_RED or BACKGROUND_BLUE or BACKGROUND_GREEN;
Fondo_Brillante = BACKGROUND_INTENSITY;
Texto_Rojo = FOREGROUND_RED;
Texto_Azul = FOREGROUND_BLUE;
Texto_Verde = FOREGROUND_GREEN;
Texto_Amarillo = FOREGROUND_RED or FOREGROUND_GREEN;
Texto_Magenta = FOREGROUND_RED or FOREGROUND_BLUE;
Texto_Agua = FOREGROUND_BLUE or FOREGROUND_GREEN;
Texto_Blanco = FOREGROUND_RED or FOREGROUND_BLUE or FOREGROUND_GREEN;
Texto_Brillante = FOREGROUND_INTENSITY;
var
ConsoleHandle: integer;
Coord: TCoord;
MaxX, MaxY: Short;
Numero: Cardinal;
procedure GotoXY(X, Y : Word);
begin
Coord.X := X;
Coord.Y := Y;
SetConsoleCursorPosition(ConsoleHandle, Coord);
end;
procedure cls;
begin
GotoXY(0, 0);
FillConsoleOutputCharacter(ConsoleHandle, ' ', MaxX * MaxY, Coord, Numero);
GotoXY(0, 0);
end;
procedure Texto_Y_Fondo(Atributos: Word);
begin
GotoXY (0, 0);
cls;
FillConsoleOutputAttribute(ConsoleHandle, Atributos, MaxX * MaxY, Coord, Numero);
SetConsoletextAttribute(ConsoleHandle, Atributos);
end;
begin
ConsoleHandle := GetStdhandle(STD_OUTPUT_HANDLE);
Coord := GetLargestConsoleWindowSize(ConsoleHandle);
MaxX := Coord.X;
MaxY := Coord.Y;
SetConsoleTitle('Demostracion de colores');
SetConsoleTextAttribute(ConsoleHandle, Fondo_Amarillo or Fondo_Brillante or Texto_Magenta or Texto_Brillante);
WriteLn('Texto magenta brillante sobre fondo amarillo brillante');
WriteLn;
SetConsoleTextAttribute(ConsoleHandle, Fondo_Rojo or Fondo_Brillante or Texto_Amarillo);
WriteLn('Texto amarillo mate sobre fondo rojo brillante');
WriteLn;
SetConsoleTextAttribute(ConsoleHandle, Texto_Blanco);
WriteLn('Pulsa Enter');
ReadLn;
Texto_Y_Fondo(Fondo_Magenta or Fondo_Brillante or Texto_Rojo);
WriteLn('Todo cambiado a texto en rojo mate sobre fondo magenta brillante');
WriteLn;
WriteLn('Pulsa Enter para borrar la pantalla');
ReadLn;
cls;
Texto_Y_Fondo(Texto_Blanco);
GotoXY(10,10);
Writeln('Esto es todo');
ReadLn;
GotoXY(10, 10);
FillConsoleOutputAttribute(ConsoleHandle, Texto_Rojo or Texto_Brillante, 4, Coord, Numero);
GotoXY(15, 10);
FillConsoleOutputAttribute(ConsoleHandle, Texto_Verde or Texto_Brillante, 2, Coord, Numero);
GotoXY(18, 10);
FillConsoleOutputAttribute(ConsoleHandle, Texto_Azul or Texto_Brillante, 4, Coord, Numero);
GotoXY(0,11);
ReadLn;
end.
Cuando lo pruebes ya verás que los nombres que les di a las constantes de los colores mucho no se parecen. Realmente serían los nombres si se les añade el flag de "Intensity" ya que sin ella son muy oscuros (por ejemplo el amarillo sería como un marrón-verdecido o algo así)