Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   ¿Como personalizar una Paleta de colores en Lazarus? (https://www.clubdelphi.com/foros/showthread.php?t=96069)

MAXIUM 21-01-2023 01:06:37

¿Como personalizar una Paleta de colores en Lazarus?
 
Hola que tal,

Estoy intentando crear una paleta personalizada con la clase TFPPalette. Si me pueden ayudar por favor :rolleyes:

duilioisola 23-01-2023 12:49:49

Se te puede ayudar. De eso puedes estar seguro!

El problema es que no explicas en qué quieres que te ayudemos...

A modo de ayuda, por ahora solo puedo darte ánimos y mis mejores deseos de éxito.

MAXIUM 23-01-2023 19:59:46

Cita:

Empezado por duilioisola (Mensaje 550129)
Se te puede ayudar. De eso puedes estar seguro!

El problema es que no explicas en qué quieres que te ayudemos...

A modo de ayuda, por ahora solo puedo darte ánimos y mis mejores deseos de éxito.

Hola que tal, gracias pro responder.

TFPPalette es type de una librería que viene con Lazarus (FPImage). Es decir, instalas Lazarus y ya.
Como se intuye en el nombre TFPPalette, sirve para establecer la paleta de colores de una imagen.

Intruseando en Lazarus, encontré el archivo fppalette.inc el cual incluye algunas funciones de ejemplo. Así que aviso que ya tengo la solución a mi problema. Muchas gracias :)

Código Delphi [-]
{ A simple 1 bit black and white palette }
function CreateBlackAndWhitePalette : TFPPalette;
var fppal : TFPPalette;
    Col : TFPColor;
begin
  fppal:=TFPPalette.Create(2);
  Col.Alpha:=AlphaOpaque;
  Col.Red:=$FFFF; Col.Green:=$FFFF; Col.Blue:=$FFFF;
  fppal.Color[0]:=Col;
  Col.Red:=$0000; Col.Green:=$0000; Col.Blue:=$0000;
  fppal.Color[1]:=Col;
  Result:=fppal;
end;

Código Delphi [-]
{ Standard VGA 16 color palette. }
function CreateVGAPalette : TFPPalette;
var fppal : TFPPalette;
begin
  fppal:=TFPPalette.Create(16);
  fppal.Color[0]:=colBlack;
  fppal.Color[1]:=colNavy;
  fppal.Color[2]:=colBlue;
  fppal.Color[3]:=colMaroon;
  fppal.Color[4]:=colPurple;
  fppal.Color[5]:=colDkGreen;
  fppal.Color[6]:=colRed;
  fppal.Color[7]:=colTeal;
  fppal.Color[8]:=colFuchsia;
  fppal.Color[9]:=colOlive;
  fppal.Color[10]:=colGray;
  fppal.Color[11]:=colLime;
  fppal.Color[12]:=colAqua;
  fppal.Color[13]:=colSilver;
  fppal.Color[14]:=colYellow;
  fppal.Color[15]:=colWhite;
  Result:=fppal;
end;

El equivalente en Delphi :)

Código Delphi [-]
function MakeGrayPalette: HPalette;
var
  i: integer;
  lp:  TMaxLogPalette;
begin
  lp.palVersion    := $300;
  lp.palNumEntries := 2; //256;
 // for i := 0 TO 255 do begin
     lp.palPalEntry[0].peRed   := 0;
     lp.palPalEntry[0].peGreen := 72;
     lp.palPalEntry[0].peBlue  := 157;
     lp.palPalEntry[0].peFlags := PC_RESERVED;

     lp.palPalEntry[1].peRed   := 96;
     lp.palPalEntry[1].peGreen := 174;
     lp.palPalEntry[1].peBlue  := 255;
     lp.palPalEntry[1].peFlags := PC_RESERVED;
 //  end;
   Result := CreatePalette(pLogPalette(@lp)^);
end;


La franja horaria es GMT +2. Ahora son las 19:58:09.

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