You've already forked lazarus-ccr
ColorPalette: Support named colors. New property "UseSpacers" (false: clNone is a "no-fill" color). Replace hkWebsafePalette2 by pkHTMLPalette.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4287 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -29,7 +29,7 @@
|
||||
|
||||
0,0,0
|
||||
# inserts color r,g,b
|
||||
255,255,255
|
||||
255,255,255 Pure white
|
||||
|
||||
$NONE
|
||||
# inserts empty palette grid cell
|
||||
@ -63,7 +63,7 @@ type
|
||||
|
||||
TPaletteKind = (pkStandardPalette, pkExtendedPalette, pkSystemPalette,
|
||||
pkStandardAndSystemPalette, pkExtendedAndSystemPalette,
|
||||
pkGradientPalette, pkWebSafePalette, pkWebSafePalette2);
|
||||
pkGradientPalette, pkHTMLPalette, pkWebSafePalette);
|
||||
|
||||
TColorMouseEvent = procedure (Sender: TObject; AColor: TColor; Shift: TShiftState) of object;
|
||||
TColorPaletteEvent = procedure (Sender: TObject; AColor: TColor) of object;
|
||||
@ -82,7 +82,7 @@ type
|
||||
FOnSelectColor: TColorPaletteEvent;
|
||||
FOnGetHintText: TColorPaletteHintEvent;
|
||||
FRows: Integer;
|
||||
FColors: TList;
|
||||
FColors: TStringList;
|
||||
FSelectedColor: TColor;
|
||||
FSelectedIndex: Integer;
|
||||
FPickMode: TPickMode;
|
||||
@ -98,29 +98,33 @@ type
|
||||
FBorderWidth: Integer;
|
||||
FPaletteKind: TPaletteKind;
|
||||
FGradientSteps: Byte;
|
||||
FUseSpacers: Boolean;
|
||||
function GetColorCount: Integer;
|
||||
function GetColors(AIndex: Integer): TColor;
|
||||
function GetColorNames(AIndex: Integer): String;
|
||||
function GetPickedColor: TColor;
|
||||
procedure SetBorderColor(const AValue: TColor);
|
||||
procedure SetBorderWidth(const AValue: Integer);
|
||||
procedure SetButtonHeight(const AValue: Integer);
|
||||
procedure SetButtonWidth(const AValue: Integer);
|
||||
procedure SetColorNames(AIndex: Integer; const AValue: String);
|
||||
procedure SetColors(AIndex: Integer; const AValue: TColor);
|
||||
procedure SetCols(AValue: Integer);
|
||||
procedure SetGradientSteps(AValue: Byte);
|
||||
procedure SetPaletteKind(AValue: TPaletteKind);
|
||||
procedure SetSelectedIndex(AValue: Integer);
|
||||
procedure SetShowSelection(AValue: Boolean);
|
||||
procedure SetUseSpacers(AValue: Boolean);
|
||||
|
||||
protected
|
||||
procedure BlendWBColor(AColor: TColor; Steps: Integer);
|
||||
procedure ColorPick(AIndex: Integer; Shift: TShiftState); dynamic;
|
||||
procedure ColorMouseMove(AColor: TColor; Shift: TShiftState); dynamic;
|
||||
procedure DoAddColor(AColor: TColor); virtual;
|
||||
procedure DoAddColor(AColor: TColor; AColorName: String = ''); virtual;
|
||||
procedure DoColorPick(AColor: TColor; AShift: TShiftState); virtual;
|
||||
procedure DoDeleteColor(AIndex: Integer); virtual;
|
||||
procedure DoSelectColor(AColor: TColor); virtual;
|
||||
function GetHintText(AColor: TColor): String; virtual;
|
||||
function GetHintText(AIndex: Integer): String; virtual;
|
||||
function IsCorrectShift(Shift: TShiftState): Boolean;
|
||||
procedure MouseDown(Button: TMouseButton; Shift:TShiftState; X, Y:Integer); override;
|
||||
procedure MouseEnter; override;
|
||||
@ -140,6 +144,7 @@ type
|
||||
property SelectedIndex: Integer read FSelectedIndex write SetSelectedIndex default 0;
|
||||
property ShowColorHint: Boolean read FShowColorHint write FShowColorHint default true;
|
||||
property ShowSelection: Boolean read FShowSelection write SetShowSelection default false;
|
||||
property UseSpacers: Boolean read FUseSpacers write SetUseSpacers default true;
|
||||
property OnGetHintText: TColorPaletteHintEvent read FOnGetHintText write FOnGetHintText;
|
||||
|
||||
public
|
||||
@ -147,13 +152,14 @@ type
|
||||
destructor Destroy; override;
|
||||
procedure Paint; override;
|
||||
|
||||
procedure AddColor(AColor: TColor);
|
||||
procedure AddColor(AColor: TColor; AColorName: String = '');
|
||||
procedure ClearColors;
|
||||
procedure DeleteColor(AIndex: Integer);
|
||||
procedure LoadPalette(const FileName: String);
|
||||
procedure SavePalette(const FileName: String);
|
||||
|
||||
property Colors[Index: Integer]: TColor read GetColors write SetColors;
|
||||
property ColorNames[Index: Integer]: String read GetColorNames write SetColorNames;
|
||||
property ColorCount: Integer read GetColorCount;
|
||||
property PickedColor: TColor read GetPickedColor; deprecated 'Use SelectedColor';
|
||||
property SelectedColor: TColor read FSelectedColor;
|
||||
@ -181,6 +187,7 @@ type
|
||||
property SelectedIndex;
|
||||
property ShowColorHint;
|
||||
property ShowSelection;
|
||||
property UseSpacers;
|
||||
|
||||
property OnColorMouseMove;
|
||||
property OnColorPick;
|
||||
@ -221,7 +228,7 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
LCLIntf;
|
||||
LCLIntf, StrUtils;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
@ -236,7 +243,7 @@ begin
|
||||
inherited;
|
||||
ControlStyle := ControlStyle + [csFixedWidth, csFixedHeight];
|
||||
|
||||
FColors := TList.Create;
|
||||
FColors := TStringList.Create;
|
||||
FBorderColor := clBlack;
|
||||
FBorderWidth := 1;
|
||||
FButtonWidth := 12;
|
||||
@ -246,6 +253,7 @@ begin
|
||||
FPickShift := [ssLeft];
|
||||
FShowColorHint := true;
|
||||
FGradientSteps := 3;
|
||||
FUseSpacers := true;
|
||||
FCols := 8;
|
||||
SetPaletteKind(pkStandardPalette);
|
||||
|
||||
@ -258,9 +266,9 @@ begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.AddColor(AColor: TColor);
|
||||
procedure TCustomColorPalette.AddColor(AColor: TColor; AColorName: String = '');
|
||||
begin
|
||||
DoAddColor(AColor);
|
||||
DoAddColor(AColor, AColorName);
|
||||
UpdateSize;
|
||||
Invalidate;
|
||||
end;
|
||||
@ -319,9 +327,9 @@ begin
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.DoAddColor(AColor: TColor);
|
||||
procedure TCustomColorPalette.DoAddColor(AColor: TColor; AColorName: String = '');
|
||||
begin
|
||||
FColors.Add(Pointer(AColor));
|
||||
FColors.AddObject(AColorName, TObject(AColor));
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.DoColorPick(AColor: TColor; AShift: TShiftState);
|
||||
@ -349,32 +357,54 @@ begin
|
||||
Result := FColors.Count;
|
||||
end;
|
||||
|
||||
function TCustomColorPalette.GetColors(AIndex: Integer): TColor;
|
||||
function TCustomColorPalette.GetColorNames(AIndex: Integer): String;
|
||||
begin
|
||||
if (AIndex < 0) or (AIndex >= FColors.Count) then
|
||||
Result := clNone
|
||||
else
|
||||
Result := TColor(PtrUInt(FColors.Items[AIndex]));
|
||||
if (AIndex >= 0) and (AIndex < FColors.Count) then
|
||||
begin
|
||||
Result := FColors.Strings[AIndex];
|
||||
if Result = '' then
|
||||
begin
|
||||
Result := ColorToString(GetColors(AIndex));
|
||||
if FUseSpacers and (Result = ColorToString(clNone)) then
|
||||
Result := '';
|
||||
end;
|
||||
end else
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
function TCustomColorPalette.GetHintText(AColor: TColor): string;
|
||||
function TCustomColorPalette.GetColors(AIndex: Integer): TColor;
|
||||
begin
|
||||
if (AIndex >= 0) and (AIndex < FColors.Count) then
|
||||
Result := TColor(PtrUInt(FColors.Objects[AIndex]))
|
||||
else
|
||||
Result := clNone;
|
||||
end;
|
||||
|
||||
function TCustomColorPalette.GetHintText(AIndex: Integer): string;
|
||||
const
|
||||
INDENT = '* ';
|
||||
MASK = '%3:s'#13'%4:sRed: %0:d'#13'%4:sGreen: %1:d'#13'%4:sBlue: %2:d';
|
||||
MASK = '%0:s'#13'%4:sRed: %1:d'#13'%4:sGreen: %2:d'#13'%4:sBlue: %3:d';
|
||||
var
|
||||
C: TColor;
|
||||
begin
|
||||
if AColor = clNone then
|
||||
Result := 'NONE'
|
||||
else
|
||||
C := GetColors(AIndex);
|
||||
if C = clNone then
|
||||
begin
|
||||
Result := ColorToString(AColor);
|
||||
if (Result[1] = 'c') and (Result[2] = 'l') then
|
||||
if FUseSpacers then
|
||||
Result := ''
|
||||
else
|
||||
Result := 'None'
|
||||
end else
|
||||
begin
|
||||
Result := GetColorNames(AIndex);
|
||||
if (Result <> '') and (Result[1] = 'c') and (Result[2] = 'l') then
|
||||
Delete(Result, 1, 2);
|
||||
Result := Format(MASK, [
|
||||
Red(AColor), Green(AColor), Blue(AColor), Uppercase(Result), INDENT]
|
||||
Result, Red(C), Green(C), Blue(C), INDENT]
|
||||
);
|
||||
end;
|
||||
if Assigned(FOnGetHintText) then
|
||||
FOnGetHintText(Self, AColor, Result);
|
||||
FOnGetHintText(Self, C, Result);
|
||||
end;
|
||||
|
||||
function TCustomColorPalette.GetPickedColor: TColor;
|
||||
@ -396,24 +426,66 @@ var
|
||||
F: TextFile;
|
||||
Line: String;
|
||||
C: TColor;
|
||||
clrName: String;
|
||||
p, steps: Integer;
|
||||
|
||||
function ParseColor(var S: String): TColor;
|
||||
procedure ParseColor(S: String; out AColor: TColor; out Steps: Integer;
|
||||
out ColorName: String);
|
||||
var
|
||||
R, G, B: Integer;
|
||||
I: Integer;
|
||||
I, counter: Integer;
|
||||
L: TStringList;
|
||||
tmp: String;
|
||||
P: PChar;
|
||||
R,G,B: Integer;
|
||||
begin
|
||||
R := StrToIntDef(Copy(S, 1, Pos(',', S) - 1), 0);
|
||||
Delete(S, 1, Pos(',', S));
|
||||
G := StrToIntDef(Copy(S, 1, Pos(',', S) - 1), 0);
|
||||
Delete(S, 1, Pos(',', S));
|
||||
|
||||
S := TrimLeft(S);
|
||||
I := 1;
|
||||
while (I <= Length(S)) and (S[I] in ['0'..'9']) do Inc(I);
|
||||
B := StrToIntDef(Copy(S, 1, Pred(I)), 0);
|
||||
Delete(S, 1, Pred(I));
|
||||
|
||||
Result := RGBToColor(Max(0, Min(R, 255)), Max(0, Min(G, 255)), Max(0, Min(B, 255)));
|
||||
R := 0;
|
||||
G := 0;
|
||||
B := 0;
|
||||
Steps := 0;
|
||||
ColorName := '';
|
||||
tmp := '';
|
||||
P := PChar(S);
|
||||
counter := 0;
|
||||
// Skip leading spaces
|
||||
while (P^ = ' ') do inc(P);
|
||||
while P^ <> #0 do begin
|
||||
case P^ of
|
||||
' ': begin
|
||||
if counter = 2 then begin
|
||||
B := StrToIntDef(tmp, B);
|
||||
inc(counter);
|
||||
tmp := '';
|
||||
while P^ = ' ' do inc(P);
|
||||
end else
|
||||
if counter > 2 then
|
||||
begin
|
||||
tmp := tmp + ' ';
|
||||
inc(P);
|
||||
end;
|
||||
end;
|
||||
',': begin
|
||||
case counter of
|
||||
0: R := StrToIntDef(tmp, R);
|
||||
1: G := StrToIntDef(tmp, G);
|
||||
end;
|
||||
inc(counter);
|
||||
tmp := '';
|
||||
inc(P);
|
||||
while P^ = ' ' do inc(P);
|
||||
end;
|
||||
else tmp := tmp + P^;
|
||||
inc(P);
|
||||
end;
|
||||
end;
|
||||
if tmp <> '' then
|
||||
case counter of
|
||||
0: R := StrToIntDef(tmp, R);
|
||||
1: G := StrToIntDef(tmp, B);
|
||||
2: B := StrToIntDef(tmp, B);
|
||||
else
|
||||
if not TryStrToInt(tmp, Steps) then ColorName := tmp;
|
||||
end;
|
||||
AColor := RGBToColor(Max(0, Min(R, 255)), Max(0, Min(G, 255)), Max(0, Min(B, 255)));
|
||||
end;
|
||||
|
||||
begin
|
||||
@ -431,20 +503,32 @@ begin
|
||||
ReadLn(F, Line);
|
||||
Line := Trim(Line);
|
||||
if Length(Line) < 2 then Continue;
|
||||
if Line[1] = '#' then Continue;
|
||||
if Line[1] = '#' then
|
||||
Continue;
|
||||
// Allow '#' as comment within line
|
||||
p := pos('#', Line);
|
||||
if p > 0 then
|
||||
Line := TrimRight(Copy(Line, 1, p-1));
|
||||
// Parse data lines
|
||||
if Line[1] = '$' then
|
||||
begin
|
||||
if Copy(Line, 2, 4) = 'NONE' then DoAddColor(clNone);
|
||||
if Copy(Line, 2, 4) = 'COLS' then FCols := StrToIntDef(Copy(Line, 6, MaxInt), 8);
|
||||
if Copy(Line, 2, 4) = 'NONE' then
|
||||
DoAddColor(clNone);
|
||||
if Copy(Line, 2, 4) = 'COLS' then
|
||||
FCols := StrToIntDef(Copy(Line, 6, MaxInt), 8);
|
||||
if Copy(Line, 2, 7) = 'BLENDWB' then
|
||||
begin
|
||||
Delete(Line, 1, 8);
|
||||
C := ParseColor(Line);
|
||||
BlendWBColor(C, StrToInt(Line));
|
||||
ParseColor(Line, C, steps, clrName);
|
||||
BlendWBColor(C, steps);
|
||||
end;
|
||||
end
|
||||
else
|
||||
if Pos(',', Line) > 0 then DoAddColor(ParseColor(Line));
|
||||
if Pos(',', Line) > 0 then
|
||||
begin
|
||||
ParseColor(Line, C, steps, clrName);
|
||||
DoAddColor(C, clrName);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
Close(F);
|
||||
@ -504,16 +588,18 @@ begin
|
||||
C := GetColors(FMouseIndex);
|
||||
if ShowHint and FShowColorHint then
|
||||
begin
|
||||
Hint := GetHintText(c);
|
||||
Hint := GetHintText(FMouseIndex);
|
||||
if FMouseIndex <> FPrevMouseIndex then
|
||||
Application.ActivateHint(ClientToScreen(Point(X, Y)));
|
||||
end;
|
||||
if (FMouseIndex <> FPrevMouseIndex) then
|
||||
begin
|
||||
if C <> clNone then
|
||||
if not (FUseSpacers and (C = clNone)) then
|
||||
begin
|
||||
ColorMouseMove(C, Shift);
|
||||
if FPickMode = pmContinuous then
|
||||
ColorPick(FMouseIndex, Shift);
|
||||
if FPickMode = pmContinuous then
|
||||
ColorPick(FMouseIndex, Shift);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -548,12 +634,22 @@ procedure TCustomColorPalette.Paint;
|
||||
|
||||
procedure PaintBox(x1, y1, x2, y2: Integer; c: TColor);
|
||||
begin
|
||||
if c = clNone then
|
||||
if FUseSpacers and (c = clNone) then
|
||||
exit;
|
||||
|
||||
// Fill interior
|
||||
Canvas.Brush.Color := c;
|
||||
Canvas.FillRect(x1, y1, x2, y2);
|
||||
if c = clNone then
|
||||
begin
|
||||
Canvas.Pen.Color := clBlack;
|
||||
Canvas.Pen.Width := 1;
|
||||
Canvas.Pen.Style := psSolid;
|
||||
Canvas.Line(x1, y1, x2, y2);
|
||||
Canvas.Line(x1, y2, x2, y1);
|
||||
end else
|
||||
begin
|
||||
Canvas.Brush.Color := c;
|
||||
Canvas.FillRect(x1, y1, x2, y2);
|
||||
end;
|
||||
|
||||
// Paint border
|
||||
if (FBorderColor <> clNone) and (FBorderWidth > 0) then
|
||||
@ -620,6 +716,7 @@ var
|
||||
i: Integer;
|
||||
L: TStringList;
|
||||
clr: TColor;
|
||||
clrName: String;
|
||||
r,g,b: Byte;
|
||||
begin
|
||||
L := TStringList.Create;
|
||||
@ -631,7 +728,11 @@ begin
|
||||
L.Add('$NONE')
|
||||
else begin
|
||||
RedGreenBlue(clr, r,g,b);
|
||||
L.Add(Format('%d, %d, %d',[r, g, b]));
|
||||
clrName := ColorNames[i];
|
||||
if clrName = '' then
|
||||
L.Add(Format('%d, %d, %d',[r, g, b]))
|
||||
else
|
||||
L.Add(Format('%d, %d, %d %s', [r, g, b, clrName]));
|
||||
end;
|
||||
end;
|
||||
L.SaveToFile(FileName);
|
||||
@ -671,9 +772,14 @@ begin
|
||||
UpdateSize;
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.SetColorNames(AIndex: Integer; const AValue: String);
|
||||
begin
|
||||
FColors.Strings[AIndex] := AValue;
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.SetColors(AIndex: Integer; const AValue: TColor);
|
||||
begin
|
||||
FColors.Items[AIndex] := Pointer(AValue);
|
||||
FColors.Objects[AIndex] := TObject(AValue);
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
@ -699,19 +805,10 @@ begin
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.SetPaletteKind(AValue: TPaletteKind);
|
||||
|
||||
function FixHex(hx: String): TColor;
|
||||
var
|
||||
r, g, b, color: string;
|
||||
begin
|
||||
r := copy(hx,1,2);
|
||||
g := copy(hx,3,2);
|
||||
b := copy(hx,5,2);
|
||||
Result := StringToColor('$0' + b + g + r);
|
||||
end;
|
||||
|
||||
const
|
||||
STEPS: array[0..4] of byte = (0, 64, 128, 192, 255);
|
||||
|
||||
// Number of columns for each built-in palette, for a decent layout.
|
||||
COLCOUNT: array[TPaletteKind] of Integer = (
|
||||
8, // StandardPalette = 16 standard colors
|
||||
4, // ExtendedPalette = 16 standard colors + 4 extra colors
|
||||
@ -719,8 +816,8 @@ const
|
||||
8, // StandardAndSystemPalette = 16 standard + 25 system colors = 41 colors
|
||||
5, // ExtendedAndSystemPalette = 16 std + 4 extra + 25 system colors = 45 colors
|
||||
-1, // Gradient palette - color count depends on PaletteStep
|
||||
6, // Websafe palette
|
||||
14 // Websafe palette #2
|
||||
10, // HTML palette
|
||||
6 // Websafe palette #2
|
||||
);
|
||||
var
|
||||
i, n: Integer;
|
||||
@ -802,6 +899,309 @@ begin
|
||||
SetCols(n*2 + 1);
|
||||
end;
|
||||
|
||||
if FPaletteKind = pkHTMLPalette then
|
||||
// https://en.wikipedia.org/wiki/Web_colors#X11_color_names
|
||||
begin
|
||||
// White_colors
|
||||
DoAddColor(RGBToColor(255,255,255), 'White');
|
||||
DoAddColor(RGBToColor(255,250,250), 'Snow');
|
||||
DoAddColor(RGBToColor(240,255,240), 'Honeydew');
|
||||
DoAddColor(RGBToColor(245,255,250), 'MintCream');
|
||||
DoAddColor(RGBToColor(240,255,255), 'Azure');
|
||||
DoAddColor(RGBToColor(240,248,255), 'AliceBlue');
|
||||
DoAddColor(RGBToColor(248,248,255), 'GhostWhite');
|
||||
DoAddColor(RGBToColor(245,245,245), 'WhiteSmoke');
|
||||
DoAddColor(RGBToColor(255,245,238), 'Seashell');
|
||||
DoAddColor(RGBToColor(245,245,220), 'Beige');
|
||||
DoAddColor(RGBToColor(253,245,230), 'OldLace');
|
||||
DoAddColor(RGBToColor(255,250,240), 'FloralWhite');
|
||||
DoAddColor(RGBToColor(255,255,240), 'Ivory');
|
||||
DoAddColor(RGBToColor(250,235,215), 'AntiqueWhite');
|
||||
DoAddColor(RGBToColor(250,240,230), 'Linen');
|
||||
DoAddColor(RGBToColor(255,240,245), 'LavenderBlush');
|
||||
DoAddColor(RGBToColor(255,228,225), 'MistyRose');
|
||||
// Pink_colors
|
||||
DoAddColor(RGBToColor(255,192,203), 'Pink');
|
||||
DoAddColor(RGBToColor(255,182,193), 'LightPink');
|
||||
DoAddColor(RGBToColor(255,105,180), 'HotPink');
|
||||
DoAddColor(RGBToColor(255, 20,147), 'DeepPink');
|
||||
DoAddColor(RGBToColor(219,112,147), 'PaleVioletRed');
|
||||
DoAddColor(RGBToColor(199, 21,133), 'MediumVioletRed');
|
||||
// Red_colors
|
||||
DoAddColor(RGBToColor(255,160,122), 'LightSalmon');
|
||||
DoAddColor(RGBToColor(250,128,114), 'Salmon');
|
||||
DoAddColor(RGBToColor(233,150,122), 'DarkSalmon');
|
||||
DoAddColor(RGBToColor(240,128,128), 'LightCoral');
|
||||
DoAddColor(RGBToColor(205, 92, 92), 'IndianRed');
|
||||
DoAddColor(RGBToColor(220, 20, 60), 'Crimson');
|
||||
DoAddColor(RGBToColor(178, 34, 34), 'FireBrick');
|
||||
DoAddColor(RGBToColor(139, 0, 0), 'DarkRed');
|
||||
DoAddColor(RGBToColor(255, 0, 0), 'Red');
|
||||
// Orange_colors
|
||||
DoAddColor(RGBToColor(255, 69, 0), 'OrangeRed');
|
||||
DoAddColor(RGBToColor(255, 99, 71), 'Tomato');
|
||||
DoAddColor(RGBToColor(255,127, 80), 'Coral');
|
||||
DoAddColor(RGBToColor(255,140, 0), 'DarkOrange');
|
||||
DoAddColor(RGBToColor(255,165, 0), 'Orange');
|
||||
// Yellow_colors
|
||||
DoAddColor(RGBToColor(255,255, 0), 'Yellow');
|
||||
DoAddColor(RGBToColor(255,255,224), 'LightYellow');
|
||||
DoAddColor(RGBToColor(255,250,205), 'LemonChiffon');
|
||||
DoAddColor(RGBToColor(250,250,210), 'LightGoldenrodYellow');
|
||||
DoAddColor(RGBToColor(255,239,213), 'PapayaWhip');
|
||||
DoAddColor(RGBToColor(255,228,181), 'Moccasin');
|
||||
DoAddColor(RGBToColor(255,218,185), 'PeachPuff');
|
||||
DoAddColor(RGBToColor(238,232,170), 'PaleGoldenrod');
|
||||
DoAddColor(RGBToColor(240,230,140), 'Khaki');
|
||||
DoAddColor(RGBToColor(189,183,107), 'DarkKhaki');
|
||||
DoAddColor(RGBToColor(255,215, 0), 'Gold');
|
||||
// Brown_colors
|
||||
DoAddColor(RGBToColor(255,248,220), 'Cornsilk');
|
||||
DoAddColor(RGBToColor(255,235,205), 'BlanchedAlmond');
|
||||
DoAddColor(RGBToColor(255,228,196), 'Bisque');
|
||||
DoAddColor(RGBToColor(255,222,173), 'NavajoWhite');
|
||||
DoAddColor(RGBToColor(245,222,179), 'Wheat');
|
||||
DoAddColor(RGBToColor(222,184,135), 'BurlyWood');
|
||||
DoAddColor(RGBToColor(210,180,140), 'Tan');
|
||||
DoAddColor(RGBToColor(188,143,143), 'RosyBrown');
|
||||
DoAddColor(RGBToColor(244,164, 96), 'SandyBrown');
|
||||
DoAddColor(RGBToColor(218,165, 32), 'Goldenrod');
|
||||
DoAddColor(RGBToColor(184,134, 11), 'DarkGoldenrod');
|
||||
DoAddColor(RGBToColor(205,133, 63), 'Peru');
|
||||
DoAddColor(RGBToColor(210,105, 30), 'Chocolate');
|
||||
DoAddColor(RGBToColor(139, 69, 19), 'SaddleBrown');
|
||||
DoAddColor(RGBToColor(160, 82, 45), 'Sienna');
|
||||
DoAddColor(RGBToColor(165, 42, 42), 'Brown');
|
||||
DoAddColor(RGBToColor(128, 0, 0), 'Maroon');
|
||||
// Green_colors
|
||||
DoAddColor(RGBToColor( 85,107, 47), 'DarkOliveGreen');
|
||||
DoAddColor(RGBToColor(128,128, 0), 'Olive');
|
||||
DoAddColor(RGBToColor(107,142, 35), 'OliveDrab');
|
||||
DoAddColor(RGBToColor(154,205, 50), 'YellowGreen');
|
||||
DoAddColor(RGBToColor( 50,205, 50), 'LimeGreen');
|
||||
DoAddColor(RGBToColor( 0,255, 0), 'Lime');
|
||||
DoAddColor(RGBToColor(124,252, 0), 'LawnGreen');
|
||||
DoAddColor(RGBToColor(127,255, 0), 'Chartreuse');
|
||||
DoAddColor(RGBToColor(173,255, 47), 'GreenYellow');
|
||||
DoAddColor(RGBToColor( 0,255,127), 'SpringGreen');
|
||||
DoAddColor(RGBToColor( 0,250,154), 'MediumSpringGreen');
|
||||
DoAddColor(RGBToColor(144,238,144), 'LightGreen');
|
||||
DoAddColor(RGBToColor(152,251,152), 'PaleGreen');
|
||||
DoAddColor(RGBToColor(143,188,143), 'DarkSeaGreen');
|
||||
DoAddColor(RGBToColor( 60,179,113), 'MediumSeaGreen');
|
||||
DoAddColor(RGBToColor( 46,139, 87), 'SeaGreen');
|
||||
DoAddColor(RGBToColor( 34,139, 34), 'ForestGreen');
|
||||
DoAddColor(RGBToColor( 0,128, 0), 'Green');
|
||||
DoAddColor(RGBToColor( 0,100, 0), 'DarkGreen');
|
||||
// Cyan_colors
|
||||
DoAddColor(RGBToColor(102,205,170), 'MediumAquamarine');
|
||||
DoAddColor(RGBToColor( 0,255,255), 'Aqua');
|
||||
// DoAddColor(RGBToColor( 0,255,255), 'Cyan');
|
||||
DoAddColor(RGBToColor(224,255,255), 'LightCyan');
|
||||
DoAddColor(RGBToColor(175,238,238), 'PaleTurquoise');
|
||||
DoAddColor(RGBToColor(127,255,212), 'Aquamarine');
|
||||
DoAddColor(RGBToColor( 64,224,208), 'Turquoise');
|
||||
DoAddColor(RGBToColor( 72,209,204), 'MediumTurquoise');
|
||||
DoAddColor(RGBToColor( 0,206,209), 'DarkTurquoise');
|
||||
DoAddColor(RGBToColor( 32,178,170), 'LightSeaGreen');
|
||||
DoAddColor(RGBToColor( 95,158,160), 'CadetBlue');
|
||||
DoAddColor(RGBToColor( 0,139,139), 'DarkCyan');
|
||||
DoAddColor(RGBToColor( 0,128,128), 'Teal');
|
||||
// Blue_colors
|
||||
DoAddColor(RGBToColor(176,196,222), 'LightSteelBlue');
|
||||
DoAddColor(RGBToColor(176,224,230), 'PowderBlue');
|
||||
DoAddColor(RGBToColor(173,216,230), 'LightBlue');
|
||||
DoAddColor(RGBToColor(135,206,235), 'SkyBlue');
|
||||
DoAddColor(RGBToColor(135,206,250), 'LightSkyBlue');
|
||||
DoAddColor(RGBToColor( 0,191,255), 'DeepSkyBlue');
|
||||
DoAddColor(RGBToColor( 30,144,255), 'DodgerBlue');
|
||||
DoAddColor(RGBToColor(100,149,237), 'CornflowerBlue');
|
||||
DoAddColor(RGBToColor( 70,130,180), 'SteelBlue');
|
||||
DoAddColor(RGBToColor( 65,105,225), 'RoyalBlue');
|
||||
DoAddColor(RGBToColor( 0, 0,255), 'Blue');
|
||||
DoAddColor(RGBToColor( 0, 0,205), 'MediumBlue');
|
||||
DoAddColor(RGBToColor( 0, 0,139), 'DarkBlue');
|
||||
DoAddColor(RGBToColor( 0, 0,128), 'Navy');
|
||||
DoAddColor(RGBToColor( 25, 25,112), 'MidnightBlue');
|
||||
// Purple/Violet/Magenta colors
|
||||
DoAddColor(RGBToColor(230,230,250), 'Lavender');
|
||||
DoAddColor(RGBToColor(216,191,216), 'Thistle');
|
||||
DoAddColor(RGBToColor(221,160,221), 'Plum');
|
||||
DoAddColor(RGBToColor(238,130,238), 'Violet');
|
||||
DoAddColor(RGBToColor(218,112,214), 'Orchid');
|
||||
DoAddColor(RGBToColor(255, 0,255), 'Fuchsia');
|
||||
DoAddColor(RGBToColor(255, 0,255), 'Magenta');
|
||||
DoAddColor(RGBToColor(186, 85,211), 'MediumOrchid');
|
||||
DoAddColor(RGBToColor(147,112,219), 'MediumPurple');
|
||||
DoAddColor(RGBToColor(138, 43,226), 'BlueViolet');
|
||||
DoAddColor(RGBToColor(148, 0,211), 'DarkViolet');
|
||||
DoAddColor(RGBToColor(153, 50,204), 'DarkOrchid');
|
||||
DoAddColor(RGBToColor(139, 0,139), 'DarkMagenta');
|
||||
DoAddColor(RGBToColor(128, 0,128), 'Purple');
|
||||
DoAddColor(RGBToColor( 75, 0,130), 'Indigo');
|
||||
DoAddColor(RGBToColor( 72, 61,139), 'DarkSlateBlue');
|
||||
DoAddColor(RGBToColor(102, 51,153), 'RebeccaPurple');
|
||||
DoAddColor(RGBToColor(106, 90,205), 'SlateBlue');
|
||||
DoAddColor(RGBToColor(123,104,238), 'MediumSlateBlue');
|
||||
// Gray/Black_colors
|
||||
DoAddColor(RGBToColor(220,220,220), 'Gainsboro');
|
||||
DoAddColor(RGBToColor(211,211,211), 'LightGrey');
|
||||
DoAddColor(RGBToColor(192,192,192), 'Silver');
|
||||
DoAddColor(RGBToColor(169,169,169), 'DarkGray');
|
||||
DoAddColor(RGBToColor(128,128,128), 'Gray');
|
||||
DoAddColor(RGBToColor(105,105,105), 'DimGray');
|
||||
DoAddColor(RGBToColor(119,136,153), 'LightSlateGray');
|
||||
DoAddColor(RGBToColor(112,128,144), 'SlateGray');
|
||||
DoAddColor(RGBToColor( 47, 79, 79), 'DarkSlateGray');
|
||||
DoAddColor(RGBToColor( 0, 0, 0), 'Black');
|
||||
end;
|
||||
|
||||
{
|
||||
if FPaletteKind = pkHTMLPalette then
|
||||
begin
|
||||
DoAddColor(RGBToColor(255,255,255), 'white');
|
||||
DoAddColor(RGBToColor(255,255,240), 'ivory');
|
||||
DoAddColor(RGBToColor(255,255,224), 'lightyellow');
|
||||
DoAddColor(RGBToColor(255,255, 0), 'yellow');
|
||||
DoAddColor(RGBToColor(255,250,250), 'snow');
|
||||
DoAddColor(RGBToColor(255,250,240), 'floralwhite');
|
||||
DoAddColor(RGBToColor(255,250,205), 'lemonchiffon');
|
||||
DoAddColor(RGBToColor(255,248,220), 'cornsilk');
|
||||
DoAddColor(RGBToColor(255,245,238), 'seashell');
|
||||
DoAddColor(RGBToColor(255,240,245), 'lavenderblush');
|
||||
DoAddColor(RGBToColor(255,239,213), 'papayawhip');
|
||||
DoAddColor(RGBToColor(255,235,205), 'blanchedalmond');
|
||||
DoAddColor(RGBToColor(255,228,225), 'mistyrose');
|
||||
DoAddColor(RGBToColor(255,228,196), 'bisque');
|
||||
DoAddColor(RGBToColor(255,228,181), 'moccasin');
|
||||
DoAddColor(RGBToColor(255,222,173), 'navajowhite');
|
||||
DoAddColor(RGBToColor(255,218,185), 'peachpuff');
|
||||
DoAddColor(RGBToColor(255,215, 0), 'gold');
|
||||
DoAddColor(RGBToColor(255,192,203), 'pink');
|
||||
DoAddColor(RGBToColor(255,182,193), 'lightpink');
|
||||
DoAddColor(RGBToColor(255,165, 0), 'orange');
|
||||
DoAddColor(RGBToColor(255,160,122), 'lightsalmon');
|
||||
DoAddColor(RGBToColor(255,140, 0), 'darkorange');
|
||||
DoAddColor(RGBToColor(255,127, 80), 'coral');
|
||||
DoAddColor(RGBToColor(255,105,180), 'hotpink');
|
||||
DoAddColor(RGBToColor(255, 99, 71), 'tomato');
|
||||
DoAddColor(RGBToColor(255, 69, 0), 'orangered');
|
||||
DoAddColor(RGBToColor(255, 20,147), 'deeppink');
|
||||
DoAddColor(RGBToColor(255, 0,255), 'fuchsia');
|
||||
DoAddColor(RGBToColor(255, 0,255), 'fuchsia');
|
||||
DoAddColor(RGBToColor(255, 0, 0), 'red');
|
||||
DoAddColor(RGBToColor(253,245,230), 'oldlace');
|
||||
DoAddColor(RGBToColor(250,250,210), 'lightgoldenrodyellow');
|
||||
DoAddColor(RGBToColor(250,240,230), 'linen');
|
||||
DoAddColor(RGBToColor(250,235,215), 'antiquewhite');
|
||||
DoAddColor(RGBToColor(250,128,114), 'salmon');
|
||||
DoAddColor(RGBToColor(248,248,255), 'ghostwhite');
|
||||
DoAddColor(RGBToColor(245,255,250), 'mintcream');
|
||||
DoAddColor(RGBToColor(245,245,245), 'whitesmoke');
|
||||
DoAddColor(RGBToColor(245,245,220), 'beige');
|
||||
DoAddColor(RGBToColor(245,222,179), 'wheat');
|
||||
DoAddColor(RGBToColor(244,164, 96), 'sandybrown');
|
||||
DoAddColor(RGBToColor(240,255,255), 'azure');
|
||||
DoAddColor(RGBToColor(240,255,240), 'honeydew');
|
||||
DoAddColor(RGBToColor(240,248,255), 'aliceblue');
|
||||
DoAddColor(RGBToColor(240,230,140), 'khaki');
|
||||
DoAddColor(RGBToColor(240,128,128), 'lightcoral');
|
||||
DoAddColor(RGBToColor(238,232,170), 'palegoldenrod');
|
||||
DoAddColor(RGBToColor(238,130,238), 'violet');
|
||||
DoAddColor(RGBToColor(233,150,122), 'darksalmon');
|
||||
DoAddColor(RGBToColor(230,230,250), 'lavender');
|
||||
DoAddColor(RGBToColor(224,255,255), 'lightcyan');
|
||||
DoAddColor(RGBToColor(222,184,135), 'burlywood');
|
||||
DoAddColor(RGBToColor(221,160,221), 'plum');
|
||||
DoAddColor(RGBToColor(220,220,220), 'gainsboro');
|
||||
DoAddColor(RGBToColor(220, 20, 60), 'crimson');
|
||||
DoAddColor(RGBToColor(219,112,147), 'palevioletred');
|
||||
DoAddColor(RGBToColor(218,165, 32), 'goldenrod');
|
||||
DoAddColor(RGBToColor(218,112,214), 'orchid');
|
||||
DoAddColor(RGBToColor(216,191,216), 'thistle');
|
||||
DoAddColor(RGBToColor(211,211,211), 'lightgrey');
|
||||
DoAddColor(RGBToColor(210,180,140), 'tan');
|
||||
DoAddColor(RGBToColor(210,105, 30), 'chocolate');
|
||||
DoAddColor(RGBToColor(205,133, 63), 'peru');
|
||||
DoAddColor(RGBToColor(205, 92, 92), 'indianred');
|
||||
DoAddColor(RGBToColor(199, 21,133), 'mediumvioletred');
|
||||
DoAddColor(RGBToColor(192,192,192), 'silver');
|
||||
DoAddColor(RGBToColor(189,183,107), 'darkkhaki');
|
||||
DoAddColor(RGBToColor(188,143,143), 'rosybrown');
|
||||
DoAddColor(RGBToColor(186, 85,211), 'mediumorchid');
|
||||
DoAddColor(RGBToColor(184,134, 11), 'darkgoldenrod');
|
||||
DoAddColor(RGBToColor(178, 34, 34), 'firebrick');
|
||||
DoAddColor(RGBToColor(176,224,230), 'powderblue');
|
||||
DoAddColor(RGBToColor(176,196,222), 'lightsteelblue');
|
||||
DoAddColor(RGBToColor(175,238,238), 'paleturquoise');
|
||||
DoAddColor(RGBToColor(173,255, 47), 'greenyellow');
|
||||
DoAddColor(RGBToColor(173,216,230), 'lightblue');
|
||||
DoAddColor(RGBToColor(169,169,169), 'darkgray');
|
||||
DoAddColor(RGBToColor(165, 42, 42), 'brown');
|
||||
DoAddColor(RGBToColor(160, 82, 45), 'sienna');
|
||||
DoAddColor(RGBToColor(154,205, 50), 'yellowgreen');
|
||||
DoAddColor(RGBToColor(153, 50,204), 'darkorchid');
|
||||
DoAddColor(RGBToColor(152,251,152), 'palegreen');
|
||||
DoAddColor(RGBToColor(148, 0,211), 'darkviolet');
|
||||
DoAddColor(RGBToColor(147,112,219), 'mediumpurple');
|
||||
DoAddColor(RGBToColor(144,238,144), 'lightgreen');
|
||||
DoAddColor(RGBToColor(143,188,143), 'darkseagreen');
|
||||
DoAddColor(RGBToColor(139, 69, 19), 'saddlebrown');
|
||||
DoAddColor(RGBToColor(139, 0,139), 'darkmagenta');
|
||||
DoAddColor(RGBToColor(139, 0, 0), 'darkred');
|
||||
DoAddColor(RGBToColor(138, 43,226), 'blueviolet');
|
||||
DoAddColor(RGBToColor(135,206,250), 'lightskyblue');
|
||||
DoAddColor(RGBToColor(135,206,235), 'skyblue');
|
||||
DoAddColor(RGBToColor(128,128,128), 'gray');
|
||||
DoAddColor(RGBToColor(128,128, 0), 'olive');
|
||||
DoAddColor(RGBToColor(128, 0,128), 'purple');
|
||||
DoAddColor(RGBToColor(128, 0, 0), 'maroon');
|
||||
DoAddColor(RGBToColor(127,255,212), 'aquamarine');
|
||||
DoAddColor(RGBToColor(127,255, 0), 'chartreuse');
|
||||
DoAddColor(RGBToColor(124,252, 0), 'lawngreen');
|
||||
DoAddColor(RGBToColor(123,104,238), 'mediumslateblue');
|
||||
DoAddColor(RGBToColor(119,136,153), 'lightslategray');
|
||||
DoAddColor(RGBToColor(112,128,144), 'slategray');
|
||||
DoAddColor(RGBToColor(107,142, 35), 'olivedrab');
|
||||
DoAddColor(RGBToColor(106, 90,205), 'slateblue');
|
||||
DoAddColor(RGBToColor(105,105,105), 'dimgray');
|
||||
DoAddColor(RGBToColor(102,205,170), 'mediumaquamarine');
|
||||
DoAddColor(RGBToColor(100,149,237), 'cornflowerblue');
|
||||
DoAddColor(RGBToColor( 95,158,160), 'cadetblue');
|
||||
DoAddColor(RGBToColor( 85,107, 47), 'darkolivegreen');
|
||||
DoAddColor(RGBToColor( 75, 0,130), 'indigo');
|
||||
DoAddColor(RGBToColor( 72,209,204), 'mediumturquoise');
|
||||
DoAddColor(RGBToColor( 72, 61,139), 'darkslateblue');
|
||||
DoAddColor(RGBToColor( 70,130,180), 'steelblue');
|
||||
DoAddColor(RGBToColor( 65,105,225), 'royalblue');
|
||||
DoAddColor(RGBToColor( 64,224,208), 'turquoise');
|
||||
DoAddColor(RGBToColor( 60,179,113), 'mediumseagreen');
|
||||
DoAddColor(RGBToColor( 50,205, 50), 'limegreen');
|
||||
DoAddColor(RGBToColor( 47, 79, 79), 'darkslategray');
|
||||
DoAddColor(RGBToColor( 46,139, 87), 'seagreen');
|
||||
DoAddColor(RGBToColor( 34,139, 34), 'forestgreen');
|
||||
DoAddColor(RGBToColor( 32,178,170), 'lightseagreen');
|
||||
DoAddColor(RGBToColor( 30,144,255), 'dodgerblue');
|
||||
DoAddColor(RGBToColor( 25, 25,112), 'midnightblue');
|
||||
DoAddColor(RGBToColor( 0,255,255), 'aqua');
|
||||
DoAddColor(RGBToColor( 0,255,255), 'cyan');
|
||||
DoAddColor(RGBToColor( 0,255,127), 'springgreen');
|
||||
DoAddColor(RGBToColor( 0,255, 0), 'lime');
|
||||
DoAddColor(RGBToColor( 0,250,154), 'mediumspringgreen');
|
||||
DoAddColor(RGBToColor( 0,206,209), 'darkturquoise');
|
||||
DoAddColor(RGBToColor( 0,191,255), 'deepskyblue');
|
||||
DoAddColor(RGBToColor( 0,139,139), 'darkcyan');
|
||||
DoAddColor(RGBToColor( 0,128,128), 'teal');
|
||||
DoAddColor(RGBToColor( 0,128, 0), 'green');
|
||||
DoAddColor(RGBToColor( 0,100, 0), 'darkgreen');
|
||||
DoAddColor(RGBToColor( 0, 0,255), 'blue');
|
||||
DoAddColor(RGBToColor( 0, 0,205), 'mediumblue');
|
||||
DoAddColor(RGBToColor( 0, 0,139), 'darkblue');
|
||||
DoAddColor(RGBToColor( 0, 0,128), 'navy');
|
||||
DoAddColor(RGBToColor( 0, 0, 0), 'black');
|
||||
end;
|
||||
}
|
||||
|
||||
if FPaletteKind = pkWebSafePalette then
|
||||
begin
|
||||
// https://en.wikipedia.org/wiki/Web_colors
|
||||
@ -811,173 +1211,6 @@ begin
|
||||
DoAddColor(RGBToColor(r*$33, g*$33, b*$33));
|
||||
end;
|
||||
|
||||
if FPaletteKind = pkWebSafePalette2 then
|
||||
begin
|
||||
DoAddColor(FixHex('f0f8ff')); // 140
|
||||
DoAddColor(FixHex('faebd7'));
|
||||
DoAddColor(FixHex('00ffff'));
|
||||
DoAddColor(FixHex('7fffd4'));
|
||||
DoAddColor(FixHex('f0ffff'));
|
||||
DoAddColor(FixHex('f5f5dc'));
|
||||
|
||||
DoAddColor(FixHex('ffe4c4'));
|
||||
DoAddColor(FixHex('000000'));
|
||||
DoAddColor(FixHex('ffebcd'));
|
||||
DoAddColor(FixHex('0000ff'));
|
||||
DoAddColor(FixHex('8a2be2'));
|
||||
DoAddColor(FixHex('a52a2a'));
|
||||
|
||||
DoAddColor(FixHex('deb887'));
|
||||
DoAddColor(FixHex('5f9ea0'));
|
||||
DoAddColor(FixHex('7fff00'));
|
||||
DoAddColor(FixHex('d2691e'));
|
||||
DoAddColor(FixHex('ff7f50'));
|
||||
DoAddColor(FixHex('6495ed'));
|
||||
|
||||
DoAddColor(FixHex('fff8dc'));
|
||||
DoAddColor(FixHex('dc143c'));
|
||||
DoAddColor(FixHex('00ffff'));
|
||||
DoAddColor(FixHex('00008b'));
|
||||
DoAddColor(FixHex('008b8b'));
|
||||
DoAddColor(FixHex('b8860b'));
|
||||
|
||||
DoAddColor(FixHex('a9a9a9'));
|
||||
DoAddColor(FixHex('006400'));
|
||||
DoAddColor(FixHex('bdb76b'));
|
||||
DoAddColor(FixHex('8b008b'));
|
||||
DoAddColor(FixHex('556b2f'));
|
||||
DoAddColor(FixHex('ff8c00'));
|
||||
|
||||
DoAddColor(FixHex('9932cc'));
|
||||
DoAddColor(FixHex('8b0000'));
|
||||
DoAddColor(FixHex('e9967a'));
|
||||
DoAddColor(FixHex('8fbc8f'));
|
||||
DoAddColor(FixHex('483d8b'));
|
||||
DoAddColor(FixHex('2f4f4f'));
|
||||
|
||||
DoAddColor(FixHex('00ced1'));
|
||||
DoAddColor(FixHex('9400d3'));
|
||||
DoAddColor(FixHex('ff1493'));
|
||||
DoAddColor(FixHex('00bfff'));
|
||||
DoAddColor(FixHex('696969'));
|
||||
DoAddColor(FixHex('1e90ff'));
|
||||
|
||||
DoAddColor(FixHex('b22222'));
|
||||
DoAddColor(FixHex('fffaf0'));
|
||||
DoAddColor(FixHex('228b22'));
|
||||
DoAddColor(FixHex('ff00ff'));
|
||||
DoAddColor(FixHex('dcdcdc'));
|
||||
DoAddColor(FixHex('f8f8ff'));
|
||||
|
||||
DoAddColor(FixHex('ffd700'));
|
||||
DoAddColor(FixHex('daa520'));
|
||||
DoAddColor(FixHex('808080'));
|
||||
DoAddColor(FixHex('008000'));
|
||||
DoAddColor(FixHex('adff2f'));
|
||||
DoAddColor(FixHex('f0fff0'));
|
||||
|
||||
DoAddColor(FixHex('ff69b4'));
|
||||
DoAddColor(FixHex('cd5c5c'));
|
||||
DoAddColor(FixHex('4b0082'));
|
||||
DoAddColor(FixHex('fffff0'));
|
||||
DoAddColor(FixHex('f0e68c'));
|
||||
DoAddColor(FixHex('e6e6fa'));
|
||||
|
||||
DoAddColor(FixHex('fff0f5'));
|
||||
DoAddColor(FixHex('7cfc00'));
|
||||
DoAddColor(FixHex('fffacd'));
|
||||
DoAddColor(FixHex('add8e6'));
|
||||
DoAddColor(FixHex('f08080'));
|
||||
DoAddColor(FixHex('e0ffff'));
|
||||
|
||||
DoAddColor(FixHex('fafad2'));
|
||||
DoAddColor(FixHex('90ee90'));
|
||||
DoAddColor(FixHex('d3d3d3'));
|
||||
DoAddColor(FixHex('ffb6c1'));
|
||||
DoAddColor(FixHex('ffa07a'));
|
||||
DoAddColor(FixHex('20b2aa'));
|
||||
|
||||
DoAddColor(FixHex('87cefa'));
|
||||
DoAddColor(FixHex('778899'));
|
||||
DoAddColor(FixHex('b0c4de'));
|
||||
DoAddColor(FixHex('ffffe0'));
|
||||
DoAddColor(FixHex('00ff00'));
|
||||
DoAddColor(FixHex('32cd32'));
|
||||
|
||||
DoAddColor(FixHex('faf0e6'));
|
||||
DoAddColor(FixHex('ff00ff'));
|
||||
DoAddColor(FixHex('800000'));
|
||||
DoAddColor(FixHex('66cdaa'));
|
||||
DoAddColor(FixHex('0000cd'));
|
||||
DoAddColor(FixHex('ba55d3'));
|
||||
|
||||
DoAddColor(FixHex('9370db'));
|
||||
DoAddColor(FixHex('3cb371'));
|
||||
DoAddColor(FixHex('7b68ee'));
|
||||
DoAddColor(FixHex('00fa9a'));
|
||||
DoAddColor(FixHex('48d1cc'));
|
||||
DoAddColor(FixHex('c71585'));
|
||||
|
||||
DoAddColor(FixHex('191970'));
|
||||
DoAddColor(FixHex('f5fffa'));
|
||||
DoAddColor(FixHex('ffe4e1'));
|
||||
DoAddColor(FixHex('ffe4b5'));
|
||||
DoAddColor(FixHex('ffdead'));
|
||||
DoAddColor(FixHex('000080'));
|
||||
|
||||
DoAddColor(FixHex('fdf5e6'));
|
||||
DoAddColor(FixHex('808000'));
|
||||
DoAddColor(FixHex('6b8e23'));
|
||||
DoAddColor(FixHex('ffa500'));
|
||||
DoAddColor(FixHex('ff4500'));
|
||||
DoAddColor(FixHex('da70d6'));
|
||||
|
||||
DoAddColor(FixHex('eee8aa'));
|
||||
DoAddColor(FixHex('98fb98'));
|
||||
DoAddColor(FixHex('afeeee'));
|
||||
DoAddColor(FixHex('db7093'));
|
||||
DoAddColor(FixHex('ffefd5'));
|
||||
DoAddColor(FixHex('ffdab9'));
|
||||
|
||||
DoAddColor(FixHex('cd853f'));
|
||||
DoAddColor(FixHex('ffc0cb'));
|
||||
DoAddColor(FixHex('dda0dd'));
|
||||
DoAddColor(FixHex('b0e0e6'));
|
||||
DoAddColor(FixHex('800080'));
|
||||
DoAddColor(FixHex('ff0000'));
|
||||
|
||||
DoAddColor(FixHex('bc8f8f'));
|
||||
DoAddColor(FixHex('4169e1'));
|
||||
DoAddColor(FixHex('8b4513'));
|
||||
DoAddColor(FixHex('fa8072'));
|
||||
DoAddColor(FixHex('f4a460'));
|
||||
DoAddColor(FixHex('2e8b57'));
|
||||
|
||||
DoAddColor(FixHex('fff5ee'));
|
||||
DoAddColor(FixHex('a0522d'));
|
||||
DoAddColor(FixHex('c0c0c0'));
|
||||
DoAddColor(FixHex('87ceeb'));
|
||||
DoAddColor(FixHex('6a5acd'));
|
||||
DoAddColor(FixHex('708090'));
|
||||
|
||||
DoAddColor(FixHex('fffafa'));
|
||||
DoAddColor(FixHex('00ff7f'));
|
||||
DoAddColor(FixHex('4682b4'));
|
||||
DoAddColor(FixHex('d2b48c'));
|
||||
DoAddColor(FixHex('008080'));
|
||||
DoAddColor(FixHex('d8bfd8'));
|
||||
|
||||
DoAddColor(FixHex('ff6347'));
|
||||
DoAddColor(FixHex('40e0d0'));
|
||||
DoAddColor(FixHex('ee82ee'));
|
||||
DoAddColor(FixHex('f5deb3'));
|
||||
DoAddColor(FixHex('ffffff'));
|
||||
DoAddColor(FixHex('f5f5f5'));
|
||||
|
||||
DoAddColor(FixHex('ffff00'));
|
||||
DoAddColor(FixHex('9acd32'));
|
||||
end;
|
||||
|
||||
if FPaletteKind <> pkGradientPalette then
|
||||
SetCols(COLCOUNT[FPaletteKind]);
|
||||
end;
|
||||
@ -1002,6 +1235,13 @@ begin
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.SetUseSpacers(AValue: Boolean);
|
||||
begin
|
||||
if FUseSpacers = AValue then exit;
|
||||
FUseSpacers := AValue;
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
procedure TCustomColorPalette.UpdateSize;
|
||||
begin
|
||||
if (FCols = 0) or (FColors.Count = 0) then FRows := 0
|
||||
|
@ -80,7 +80,7 @@ object MainForm: TMainForm
|
||||
Height = 25
|
||||
Top = 239
|
||||
Width = 137
|
||||
Caption = 'Load Default.pal'
|
||||
Caption = 'Load palette...'
|
||||
OnClick = BtnLoadDefaultPalClick
|
||||
TabOrder = 4
|
||||
end
|
||||
@ -146,8 +146,8 @@ object MainForm: TMainForm
|
||||
'Std + system palette'
|
||||
'Ext + system palette'
|
||||
'Gradient palette'
|
||||
'HTML palette'
|
||||
'Websafe palette'
|
||||
'Websafe palette #2'
|
||||
)
|
||||
OnSelect = CbBuiltinPalettesSelect
|
||||
Style = csDropDownList
|
||||
@ -306,6 +306,17 @@ object MainForm: TMainForm
|
||||
OnChange = CbCustomHintTextChange
|
||||
TabOrder = 7
|
||||
end
|
||||
object CbUseSpacers: TCheckBox
|
||||
Left = 10
|
||||
Height = 19
|
||||
Top = 142
|
||||
Width = 131
|
||||
Caption = 'Use clNone as spacer'
|
||||
Checked = True
|
||||
OnChange = CbUseSpacersChange
|
||||
State = cbChecked
|
||||
TabOrder = 8
|
||||
end
|
||||
end
|
||||
object Bevel2: TBevel
|
||||
Left = 462
|
||||
@ -397,4 +408,11 @@ object MainForm: TMainForm
|
||||
OnClick = MnuDeletePickedColorClick
|
||||
end
|
||||
end
|
||||
object OpenDialog: TOpenDialog
|
||||
DefaultExt = '.pal'
|
||||
Filter = 'Palette files (*.pal)|*.pal'
|
||||
Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing, ofViewDetail]
|
||||
left = 384
|
||||
top = 208
|
||||
end
|
||||
end
|
||||
|
@ -27,6 +27,7 @@ type
|
||||
CbShowColorHints: TCheckBox;
|
||||
CbBorderColor: TColorBox;
|
||||
CbCustomHintText: TCheckBox;
|
||||
CbUseSpacers: TCheckBox;
|
||||
ColorDialog: TColorDialog;
|
||||
ColorPalette: TColorPalette;
|
||||
CbPickMode: TComboBox;
|
||||
@ -44,6 +45,7 @@ type
|
||||
LblPickMode2: TLabel;
|
||||
MnuEditPickedColor: TMenuItem;
|
||||
MnuDeletePickedColor: TMenuItem;
|
||||
OpenDialog: TOpenDialog;
|
||||
PalettePopupMenu: TPopupMenu;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
@ -62,6 +64,7 @@ type
|
||||
procedure CbShowColorHintsChange(Sender: TObject);
|
||||
procedure CbShowSelectionChange(Sender: TObject);
|
||||
procedure CbBorderColorSelect(Sender: TObject);
|
||||
procedure CbUseSpacersChange(Sender: TObject);
|
||||
procedure ColorPaletteDblClick(Sender: TObject);
|
||||
procedure ColorPaletteGetHintText(Sender: TObject; AColor: TColor;
|
||||
var AText: String);
|
||||
@ -141,6 +144,14 @@ end;
|
||||
|
||||
procedure TMainForm.BtnLoadDefaultPalClick(Sender: TObject);
|
||||
begin
|
||||
with OpenDialog do
|
||||
if Execute then
|
||||
begin
|
||||
ColorPalette.LoadPalette(FileName);
|
||||
UpdateCaption;
|
||||
EdColCount.Value := ColorPalette.ColumnCount;
|
||||
end;
|
||||
{
|
||||
if not FileExists('..\default.pal') then
|
||||
begin
|
||||
ShowMessage('File "default.pal" not found. Copy it from the TColorPalette folder to the current exe folder.');
|
||||
@ -149,6 +160,7 @@ begin
|
||||
ColorPalette.LoadPalette('..\default.pal');
|
||||
UpdateCaption;
|
||||
EdColCount.Value := ColorPalette.ColumnCount;
|
||||
}
|
||||
end;
|
||||
|
||||
procedure TMainForm.BtnLoadRndPaletteClick(Sender: TObject);
|
||||
@ -203,6 +215,11 @@ begin
|
||||
ColorPalette.ShowSelection := CbShowSelection.Checked;
|
||||
end;
|
||||
|
||||
procedure TMainForm.CbUseSpacersChange(Sender: TObject);
|
||||
begin
|
||||
ColorPalette.UseSpacers := CbUseSpacers.Checked;
|
||||
end;
|
||||
|
||||
procedure TMainForm.ColorPaletteDblClick(Sender: TObject);
|
||||
begin
|
||||
with ColorDialog do
|
||||
@ -301,7 +318,7 @@ begin
|
||||
colors for the context menu. Use object inspector, or use this code: }
|
||||
ColorPalette.PickShift := [ssLeft, ssRight];
|
||||
|
||||
ColorPalette.OnGetHintText := nil;
|
||||
ColorPalette.OnGetHintText := nil; // will be activated by CbCustomHintText
|
||||
end;
|
||||
|
||||
procedure TMainForm.MnuDeletePickedColorClick(Sender: TObject);
|
||||
@ -318,16 +335,17 @@ procedure TMainForm.SetColorInfo(ATitle: string; AColor: TColor);
|
||||
begin
|
||||
if AColor = clNone then
|
||||
LblColorInfo.Caption := Format(
|
||||
'%s: %s', [ATitle, ColorToString(AColor)]
|
||||
'%s: None', [ATitle]
|
||||
)
|
||||
else
|
||||
LblColorInfo.caption := Format(
|
||||
'%s: %s'#13+
|
||||
' red = %d'#13+
|
||||
' green = %d'#13+
|
||||
' blue = %d',
|
||||
[ATitle, ColorToString(AColor), Red(AColor), Green(AColor), Blue(AColor)]
|
||||
);
|
||||
' blue = %d', [
|
||||
ATitle, ColorPalette.ColorNames[ColorPalette.SelectedIndex],
|
||||
Red(AColor), Green(AColor), Blue(AColor)
|
||||
]);
|
||||
end;
|
||||
|
||||
procedure TMainForm.UpdateCaption;
|
||||
|
Reference in New Issue
Block a user