Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como cambiar los colores de las letras (https://www.clubdelphi.com/foros/showthread.php?t=52799)

julyus 31-01-2008 16:30:26

como cambiar los colores de las letras
 
hola necesito saber como cambio los colores del background y el color de las letras en delphi aplication console

gracias..

:confused: ha no se te olvide que uses o libreria debo poner

PeterPunk 01-02-2008 11:48:35

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í)

julyus 01-02-2008 22:20:39

muchas gracias
 
gracias por el aporte me sirvio de mucho....:D:):)


La franja horaria es GMT +2. Ahora son las 01:16:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi