diff --git a/components/mbColorLib/LColorPicker.pas b/components/mbColorLib/LColorPicker.pas
deleted file mode 100644
index 7165ca8fe..000000000
--- a/components/mbColorLib/LColorPicker.pas
+++ /dev/null
@@ -1,265 +0,0 @@
-unit LColorPicker;
-
-interface
-
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
-uses
- LCLIntf, LCLType, SysUtils, Classes, Controls, Graphics, Forms,
- HTMLColors, {RGBHSLUtils, }mbTrackBarPicker;
-
-type
- TLColorPicker = class(TmbTrackBarPicker)
- private
- FHue, FSat, FLuminance: Double;
- FMaxHue, FMaxSat, FMaxLum: Integer;
- function ArrowPosFromLum(L: integer): integer;
- function GetHue: Integer;
- function GetLuminance: Integer;
- function GetSat: Integer;
- function LumFromArrowPos(p: integer): integer;
- procedure SetHue(H: integer);
- procedure SetLuminance(L: integer);
- procedure SetMaxHue(H: Integer);
- procedure SetMaxLum(L: Integer);
- procedure SetMaxSat(S: Integer);
- procedure SetSat(S: integer);
- protected
- procedure Execute(tbaAction: integer); override;
- function GetArrowPos: integer; override;
- function GetGradientColor(AValue: Integer): TColor; override;
- function GetSelectedColor: TColor; override;
- function GetSelectedValue: integer; override;
- procedure SetSelectedColor(c: TColor); override;
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Hue: integer read GetHue write SetHue;
- property Saturation: integer read GetSat write SetSat;
- property Luminance: integer read GetLuminance write SetLuminance;
- property MaxHue: Integer read FMaxHue write SetmaxHue default 360;
- property MaxSaturation: Integer read FMaxSat write SetMaxSat default 255;
- property MaxLuminance: Integer read FMaxLum write SetMaxLum default 255;
- property SelectedColor default clRed;
- property HintFormat;
- end;
-
-implementation
-
-uses
- mbUtils, mbColorConv;
-
-{TLColorPicker}
-
-constructor TLColorPicker.Create(AOwner: TComponent);
-begin
- inherited;
- FMaxHue := 360;
- FMaxSat := 255;
- FMaxLum := 255;
- FGradientWidth := FMaxLum + 1;
- FGradientHeight := 1;
- FHue := 0;
- FSat := FMaxSat;
- SetLuminance(FMaxLum div 2);
- HintFormat := 'Luminance: %value (selected)';
-end;
-
-function TLColorPicker.ArrowPosFromLum(L: integer): integer;
-var
- a: integer;
-begin
- if Layout = lyHorizontal then
- begin
- a := Round((Width - 12) * L / FMaxLum);
- if a > Width - FLimit then a := Width - FLimit;
- end
- else
- begin
- a := Round((Height - 12) * (FMaxLum - L) / FMaxLum);
- if a > Height - FLimit then a := Height - FLimit;
- end;
- if a < 0 then a := 0;
- Result := a;
-end;
-
-procedure TLColorPicker.Execute(tbaAction: integer);
-begin
- case tbaAction of
- TBA_Resize:
- SetLuminance(GetLuminance());
- TBA_MouseMove:
- SetLuminance(LumFromArrowPos(FArrowPos));
- TBA_MouseDown:
- SetLuminance(LumFromArrowPos(FArrowPos));
- TBA_MouseUp:
- SetLuminance(LumFromArrowPos(FArrowPos));
- TBA_WheelUp:
- SetLuminance(GetLuminance() + Increment);
- TBA_WheelDown:
- SetLuminance(GetLuminance() - Increment);
- TBA_VKRight:
- SetLuminance(GetLuminance() + Increment);
- TBA_VKCtrlRight:
- SetLuminance(FMaxLum);
- TBA_VKLeft:
- SetLuminance(GetLuminance() - Increment);
- TBA_VKCtrlLeft:
- SetLuminance(0);
- TBA_VKUp:
- SetLuminance(GetLuminance() + Increment);
- TBA_VKCtrlUp:
- SetLuminance(FMaxLum);
- TBA_VKDown:
- SetLuminance(GetLuminance() - Increment);
- TBA_VKCtrlDown:
- SetLuminance(0);
- else
- inherited;
- end;
-end;
-
-function TLColorPicker.GetArrowPos: integer;
-begin
- if FMaxLum = 0 then
- Result := inherited GetArrowPos
- else
- Result := ArrowPosFromLum(GetLuminance());
-end;
-
-function TLColorPicker.GetGradientColor(AValue: Integer): TColor;
-begin
- Result := HSLToColor(FHue, FSat, AValue/FMaxLum);
-end;
-
-function TLColorPicker.GetHue: Integer;
-begin
- Result := Round(FHue * FMaxHue);
-end;
-
-function TLColorPicker.GetLuminance: Integer;
-begin
- Result := Round(FLuminance * FMaxLum);
-end;
-
-function TLColorPicker.GetSat: Integer;
-begin
- Result := Round(FSat * FMaxSat);
-end;
-
-function TLColorPicker.GetSelectedColor: TColor;
-begin
- Result := HSLToColor(FHue, FSat, FLuminance);
- if WebSafe then
- Result := GetWebSafe(Result);
-end;
-
-function TLColorPicker.GetSelectedValue: integer;
-begin
- Result := GetLuminance();
-end;
-
-function TLColorPicker.LumFromArrowPos(p: integer): integer;
-var
- L: integer;
-begin
- case Layout of
- lyHorizontal : L := Round( p / (Width - 12) * FMaxLum);
- lyVertical : L := Round((1.0 - p /(Height - 12)) * FMaxLum);
- end;
- Clamp(L, 0, FMaxLum);
- Result := L;
-end;
-
-procedure TLColorPicker.SetHue(H: integer);
-begin
- Clamp(H, 0, FMaxHue);
- if GetHue() <> H then
- begin
- FHue := H / FMaxHue;
- CreateGradient;
- Invalidate;
- DoChange;
- end;
-end;
-
-procedure TLColorPicker.SetLuminance(L: integer);
-begin
- Clamp(L, 0, FMaxLum);
- if GetLuminance() <> L then
- begin
- FLuminance := L / FMaxLum;
- FArrowPos := ArrowPosFromLum(L);
- Invalidate;
- DoChange;
- end;
-end;
-
-procedure TLColorPicker.SetMaxHue(H: Integer);
-begin
- if H = FMaxHue then
- exit;
- FMaxHue := H;
- CreateGradient;
- Invalidate;
-// if FChange and Assigned(OnChange) then OnChange(Self);
-end;
-
-procedure TLColorPicker.SetMaxLum(L: Integer);
-begin
- if L = FMaxLum then
- exit;
- FMaxLum := L;
- FGradientWidth := FMaxLum + 1; // 0 .. FMaxHue --> FMaxHue + 1 pixels
- CreateGradient;
- Invalidate;
-// if FChange and Assigned(OnChange) then OnChange(Self);
-end;
-
-procedure TLColorPicker.SetMaxSat(S: Integer);
-begin
- if S = FMaxSat then
- exit;
- FMaxSat := S;
- CreateGradient;
- Invalidate;
- DoChange;
-end;
-
-procedure TLColorPicker.SetSat(S: integer);
-begin
- Clamp(S, 0, FMaxSat);
- if GetSat() <> S then
- begin
- FSat := S / FMaxSat;
- CreateGradient;
- Invalidate;
- DoChange;
- end;
-end;
-
-procedure TLColorPicker.SetSelectedColor(c: TColor);
-var
- H, S, L: Double;
- needNewGradient: Boolean;
-begin
- if WebSafe then
- c := GetWebSafe(c);
- if c = GetSelectedColor then
- exit;
-
-// ColortoHSL(c, H, S, L); // not working in HSLPicker
- ColorToHSL(c, H, S, L);
- needNewGradient := (H <> FHue) or (S <> FSat);
- FHue := H;
- FSat := S;
- FLuminance := L;
- if needNewGradient then
- CreateGradient;
- Invalidate;
- DoChange;
-end;
-
-end.
diff --git a/components/mbColorLib/OfficeMoreColorsDialog.dfm b/components/mbColorLib/OfficeMoreColorsDialog.dfm
deleted file mode 100644
index 5ec10d554..000000000
--- a/components/mbColorLib/OfficeMoreColorsDialog.dfm
+++ /dev/null
@@ -1,204 +0,0 @@
-object OfficeMoreColorsWin: TOfficeMoreColorsWin
- Left = 194
- Top = 112
- Width = 331
- Height = 358
- ActiveControl = OKbtn
- BorderIcons = [biSystemMenu]
- Caption = 'More colors...'
- Color = clBtnFace
- Constraints.MinHeight = 358
- Constraints.MinWidth = 331
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Shell Dlg 2'
- Font.Style = []
- OldCreateOrder = False
- Position = poMainFormCenter
- OnCreate = FormCreate
- OnKeyDown = FormKeyDown
- OnResize = FormResize
- DesignSize = (
- 315
- 319)
- PixelsPerInch = 96
- TextHeight = 13
- object Label4: TLabel
- Left = 268
- Top = 218
- Width = 21
- Height = 13
- Anchors = [akRight, akBottom]
- Caption = 'New'
- Transparent = True
- end
- object Label5: TLabel
- Left = 260
- Top = 306
- Width = 37
- Height = 13
- Anchors = [akRight, akBottom]
- Caption = 'Current'
- Transparent = True
- end
- object Pages: TPageControl
- Left = 6
- Top = 6
- Width = 227
- Height = 316
- ActivePage = Standard
- Anchors = [akLeft, akTop, akRight, akBottom]
- TabOrder = 0
- OnChange = PagesChange
- object Standard: TTabSheet
- Caption = 'Standard'
- DesignSize = (
- 219
- 288)
- object Label2: TLabel
- Left = 6
- Top = 7
- Width = 34
- Height = 13
- Caption = '&Colors:'
- FocusControl = Hexa
- Transparent = True
- end
- object Hexa: THexaColorPicker
- Left = 6
- Top = 26
- Width = 209
- Height = 207
- Anchors = [akLeft, akTop, akRight, akBottom]
- HintFormat = 'RGB(%r, %g, %b)'#13'Hex: %h'
- IntensityText = 'Intensity'
- TabOrder = 0
- Constraints.MinHeight = 85
- Constraints.MinWidth = 93
- OnChange = HexaChange
- end
- end
- object Custom: TTabSheet
- Caption = 'Custom'
- ImageIndex = 1
- DesignSize = (
- 219
- 288)
- object Label1: TLabel
- Left = 6
- Top = 7
- Width = 34
- Height = 13
- Caption = '&Colors:'
- FocusControl = HSL
- end
- object Label3: TLabel
- Left = 6
- Top = 178
- Width = 60
- Height = 13
- Anchors = [akLeft, akBottom]
- Caption = 'Color mo&del:'
- FocusControl = ColorModel
- end
- object LRed: TLabel
- Left = 6
- Top = 204
- Width = 23
- Height = 13
- Anchors = [akLeft, akBottom]
- Caption = '&Red:'
- end
- object LGreen: TLabel
- Left = 6
- Top = 230
- Width = 33
- Height = 13
- Anchors = [akLeft, akBottom]
- Caption = '&Green:'
- end
- object LBlue: TLabel
- Left = 6
- Top = 256
- Width = 24
- Height = 13
- Anchors = [akLeft, akBottom]
- Caption = '&Blue:'
- end
- object HSL: THSLColorPicker
- Left = 6
- Top = 20
- Width = 211
- Height = 152
- HSPickerHintFormat = 'H: %h S: %s'#13'Hex: %hex'
- LPickerHintFormat = 'Luminance: %l'
- Anchors = [akLeft, akTop, akRight, akBottom]
- TabOrder = 0
- OnChange = HSLChange
- DesignSize = (
- 211
- 152)
- end
- object ColorModel: TComboBox
- Left = 74
- Top = 172
- Width = 92
- Height = 21
- Style = csDropDownList
- Anchors = [akLeft, akBottom]
- ItemHeight = 13
- ItemIndex = 0
- TabOrder = 1
- Text = 'RGB'
- OnChange = ColorModelChange
- Items.Strings = (
- 'RGB'
- 'HSL')
- end
- end
- end
- object OKbtn: TButton
- Left = 242
- Top = 6
- Width = 73
- Height = 23
- Anchors = [akTop, akRight]
- Caption = 'OK'
- ModalResult = 1
- TabOrder = 1
- end
- object Cancelbtn: TButton
- Left = 242
- Top = 36
- Width = 73
- Height = 23
- Anchors = [akTop, akRight]
- Cancel = True
- Caption = 'Cancel'
- ModalResult = 2
- TabOrder = 2
- end
- object NewSwatch: TmbColorPreview
- Left = 246
- Top = 238
- Width = 68
- Height = 32
- Hint = 'RGB(255, 255, 255)'
- Anchors = [akRight, akBottom]
- ShowHint = True
- ParentShowHint = False
- OnColorChange = NewSwatchColorChange
- end
- object OldSwatch: TmbColorPreview
- Left = 246
- Top = 269
- Width = 68
- Height = 32
- Hint = 'RGB(255, 255, 255)'#13#10'Hex: FFFFFF'
- Anchors = [akRight, akBottom]
- ShowHint = True
- ParentShowHint = False
- OnColorChange = OldSwatchColorChange
- end
-end
diff --git a/components/mbColorLib/ScreenWin.dfm b/components/mbColorLib/ScreenWin.dfm
deleted file mode 100644
index 680598087..000000000
--- a/components/mbColorLib/ScreenWin.dfm
+++ /dev/null
@@ -1,26 +0,0 @@
-object ScreenForm: TScreenForm
- Left = 198
- Top = 117
- Align = alClient
- BorderIcons = []
- BorderStyle = bsNone
- Caption = 'Pick a color...'
- ClientHeight = 96
- ClientWidth = 149
- Color = clBtnFace
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Shell Dlg 2'
- Font.Style = []
- FormStyle = fsStayOnTop
- OldCreateOrder = False
- Position = poDefault
- OnCreate = FormCreate
- OnKeyDown = FormKeyDown
- OnMouseMove = FormMouseMove
- OnMouseUp = FormMouseUp
- OnShow = FormShow
- PixelsPerInch = 96
- TextHeight = 13
-end
diff --git a/components/mbColorLib/VColorPicker.pas b/components/mbColorLib/VColorPicker.pas
deleted file mode 100644
index bc715e80e..000000000
--- a/components/mbColorLib/VColorPicker.pas
+++ /dev/null
@@ -1,267 +0,0 @@
-unit VColorPicker;
-
-interface
-
-{$IFDEF FPC}
- {$MODE DELPHI}
-{$ENDIF}
-
-uses
- LCLIntf, LCLType, SysUtils, Classes, Controls, Forms, Graphics,
- {RGBHSVUtils,} mbTrackBarPicker, HTMLColors;
-
-type
- TVColorPicker = class(TmbTrackBarPicker)
- private
- FHue, FSat, FVal: Double;
- FMaxHue, FMaxSat, FMaxVal: Integer;
- function ArrowPosFromVal(v: integer): integer;
- function ValFromArrowPos(p: integer): integer;
- function GetHue: Integer;
- function GetSat: Integer;
- function GetValue: Integer;
- procedure SetHue(h: integer);
- procedure SetMaxHue(h: Integer);
- procedure SetMaxSat(s: Integer);
- procedure SetMaxVal(v: Integer);
- procedure SetSat(s: integer);
- procedure SetValue(v: integer);
- protected
- procedure Execute(tbaAction: integer); override;
- function GetArrowPos: integer; override;
- function GetGradientColor(AValue: Integer): TColor; override;
- function GetSelectedColor: TColor; override;
- function GetSelectedValue: integer; override;
- procedure SetSelectedColor(c: TColor); override;
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Hue: integer read GetHue write SetHue;
- property Saturation: integer read GetSat write SetSat;
- property Value: integer read GetValue write SetValue;
- property MaxHue: Integer read FMaxHue write SetMaxHue default 359;
- property MaxSaturation: Integer read FMaxSat write SetMaxSat default 255;
- property MaxValue: Integer read FMaxVal write SetMaxVal default 255;
- property SelectedColor default clRed;
- property HintFormat;
- end;
-
-implementation
-
-uses
- mbUtils, mbColorConv;
-
-{TVColorPicker}
-
-constructor TVColorPicker.Create(AOwner: TComponent);
-begin
- inherited;
- FMaxHue := 359;
- FMaxSat := 255;
- FMaxVal := 255;
- FGradientWidth := FMaxVal + 1;
- FGradientHeight := 1;
- FHue := 0;
- FSat := 0;
- SetValue(FMaxVal);
- HintFormat := 'Value: %value (selected)';
-end;
-
-function TVColorPicker.ArrowPosFromVal(v: integer): integer;
-var
- a: integer;
-begin
- if Layout = lyHorizontal then
- begin
- a := Round((Width - 12) * v / FMaxVal);
- if a > Width - FLimit then a := Width - FLimit;
- end
- else
- begin
- a := Round((Height - 12) * (FMaxVal - v) / FMaxVal);
- if a > Height - FLimit then a := Height - FLimit;
- end;
- if a < 0 then a := 0;
- Result := a;
-end;
-
-procedure TVColorPicker.Execute(tbaAction: integer);
-begin
- case tbaAction of
- TBA_Resize:
- SetValue(GetValue());
- TBA_MouseMove:
- SetValue(ValFromArrowPos(FArrowPos));
- TBA_MouseDown:
- SetValue(ValFromArrowPos(FArrowPos));
- TBA_MouseUp:
- SetValue(ValFromArrowPos(FArrowPos));
- TBA_WheelUp:
- SetValue(GetValue() + Increment);
- TBA_WheelDown:
- SetValue(GetValue() - Increment);
- TBA_VKRight:
- SetValue(GetValue() + Increment);
- TBA_VKCtrlRight:
- SetValue(FMaxVal);
- TBA_VKLeft:
- SetValue(GetValue() - Increment);
- TBA_VKCtrlLeft:
- SetValue(0);
- TBA_VKUp:
- SetValue(GetValue() + Increment);
- TBA_VKCtrlUp:
- SetValue(FMaxVal);
- TBA_VKDown:
- SetValue(GetValue() - Increment);
- TBA_VKCtrlDown:
- SetValue(0);
- else
- inherited;
- end;
-end;
-
-function TVColorPicker.GetArrowPos: integer;
-begin
- if FMaxVal = 0 then
- Result := inherited GetArrowPos
- else
- Result := ArrowPosFromVal(GetValue());
-end;
-
-function TVColorPicker.GetGradientColor(AValue: Integer): TColor;
-begin
- Result := HSVtoColor(FHue, FSat, AValue / FMaxVal);
-end;
-
-function TVColorPicker.GetHue: Integer;
-begin
- Result := round(FHue * FMaxHue);
-end;
-
-function TVColorPicker.GetSat: Integer;
-begin
- Result := round(FSat * FMaxSat);
-end;
-
-function TVColorPicker.GetSelectedColor: TColor;
-begin
- Result := HSVtoColor(FHue, FSat, FVal);
- if WebSafe then
- Result := GetWebSafe(Result);
-end;
-
-function TVColorPicker.GetSelectedValue: integer;
-begin
- Result := GetValue();
-end;
-
-function TVColorPicker.GetValue: Integer;
-begin
- Result := round(FVal * FMaxVal);
-end;
-
-procedure TVColorPicker.SetHue(h: integer);
-begin
- if h > FMaxHue+1 then h := FMaxHue + 1;
- if h < 0 then h := 0;
- if GetHue() <> h then
- begin
- FHue := h / (FMaxHue + 1);
- CreateGradient;
- Invalidate;
- DoChange;
- end;
-end;
-
-procedure TVColorPicker.SetMaxHue(h: Integer);
-begin
- if h = FMaxHue then
- exit;
- FMaxHue := h;
- CreateGradient;
- Invalidate;
-// if FChange and Assigned(OnChange) then OnChange(Self);
-end;
-
-procedure TVColorPicker.SetMaxSat(s: Integer);
-begin
- if s = FMaxSat then
- exit;
- FMaxSat := s;
- CreateGradient;
- Invalidate;
-// if FChange and Assigned(OnChange) then OnChange(Self);
-end;
-
-procedure TVColorPicker.SetMaxVal(v: Integer);
-begin
- if v = FMaxVal then
- exit;
- FMaxVal := v;
- FGradientWidth := FMaxVal + 1;
- CreateGradient;
- Invalidate;
-// if FChange and Assigned(OnChange) then OnChange(Self);
-end;
-
-procedure TVColorPicker.SetSat(s: integer);
-begin
- if s > FMaxSat then s := FMaxSat;
- if s < 0 then s := 0;
- if GetSat() <> s then
- begin
- FSat := s / FMaxSat;
- CreateGradient;
- Invalidate;
- DoChange;
- end;
-end;
-
-procedure TVColorPicker.SetSelectedColor(c: TColor);
-var
- h, s, v: Double;
- needNewGradient: Boolean;
-begin
- if WebSafe then
- c := GetWebSafe(c);
- if c = GetSelectedColor then
- exit;
-
- RGBToHSV(GetRValue(c), GetGValue(c), GetBValue(c), h, s, v);
- needNewGradient := (h <> FHue) or (s <> FSat);
- FHue := h;
- FSat := s;
- FVal := v;
- if needNewGradient then
- CreateGradient;
- Invalidate;
- DoChange;
-end;
-
-procedure TVColorPicker.SetValue(V: integer);
-begin
- if v < 0 then v := 0;
- if v > FMaxVal then v := FMaxVal;
- if GetValue() <> v then
- begin
- FVal := v / FMaxVal;
- FArrowPos := ArrowPosFromVal(v);
- Invalidate;
- DoChange;
- end;
-end;
-
-function TVColorPicker.ValFromArrowPos(p: integer): integer;
-var
- v: integer;
-begin
- case Layout of
- lyHorizontal : v := Round(p / (Width - 12) * FMaxVal);
- lyVertical : v := Round(FMaxVal - p / (Height - 12) * FMaxVal);
- end;
- Clamp(v, 0, FMaxVal);
- Result := v;
-end;
-
-end.
diff --git a/components/mbColorLib/examples/fulldemo/main.lfm b/components/mbColorLib/examples/fulldemo/main.lfm
index 8aafcc27e..8ba17f15a 100644
--- a/components/mbColorLib/examples/fulldemo/main.lfm
+++ b/components/mbColorLib/examples/fulldemo/main.lfm
@@ -603,14 +603,14 @@ object Form1: TForm1
end
object TabSheet4: TTabSheet
Caption = 'HSLRingPicker'
- ClientHeight = 365
- ClientWidth = 420
+ ClientHeight = 376
+ ClientWidth = 468
ImageIndex = 3
object HSLRingPicker1: THSLRingPicker
Left = 50
- Height = 351
+ Height = 362
Top = 6
- Width = 322
+ Width = 370
Luminance = 240
RingPickerHintFormat = 'Hue: %h'
SLPickerHintFormat = 'S: %hslS V: %v'#13'Hex: %hex'
@@ -637,6 +637,7 @@ object Form1: TForm1
HintFormat = 'H: %h S: %s V: %v'#13'Hex: %hex'
Anchors = [akTop, akLeft, akRight, akBottom]
TabOrder = 0
+ Luminance = 128
Saturation = 0
OnChange = HSVColorPicker1Change
end
@@ -691,7 +692,7 @@ object Form1: TForm1
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Button5
Left = 238
- Height = 339
+ Height = 347
Top = 0
Width = 230
Anchors = [akTop, akLeft, akRight, akBottom]
@@ -703,7 +704,7 @@ object Form1: TForm1
AnchorSideRight.Control = Bevel1
AnchorSideBottom.Control = Button5
Left = 0
- Height = 339
+ Height = 347
Top = 0
Width = 230
InfoLabelText = 'Color Values:'
@@ -783,7 +784,7 @@ object Form1: TForm1
OnClick = OfficeColorDialogButtonClick
TabOrder = 1
end
- object LColorPicker1: TLColorPicker
+ object LVColorPicker2: TLVColorPicker
Left = 34
Height = 25
Top = 265
@@ -792,12 +793,12 @@ object Form1: TForm1
SelectionIndicator = siRect
Anchors = [akLeft, akRight, akBottom]
TabOrder = 2
- Hue = 0
- Saturation = 240
Luminance = 120
- HintFormat = 'Luminance: %l (selected)'
+ Saturation = 240
+ LHintFormat = 'Luminance: %l (selected)'
+ VHintFormat = 'Value: %v (selected)'
end
- object VColorPicker1: TVColorPicker
+ object LVColorPicker3: TLVColorPicker
Left = 34
Height = 21
Top = 233
@@ -807,10 +808,9 @@ object Form1: TForm1
SelectionIndicator = siRect
Anchors = [akLeft, akRight, akBottom]
TabOrder = 3
- Hue = 0
Saturation = 255
- Value = 255
- HintFormat = 'Value: %v (selected)'
+ LHintFormat = 'Luminance: %l (selected)'
+ VHintFormat = 'Value: %v (selected)'
end
object HColorPicker1: THColorPicker
Left = 34
diff --git a/components/mbColorLib/examples/fulldemo/main.pas b/components/mbColorLib/examples/fulldemo/main.pas
index 13b111cb6..676b6e6fe 100644
--- a/components/mbColorLib/examples/fulldemo/main.pas
+++ b/components/mbColorLib/examples/fulldemo/main.pas
@@ -8,14 +8,13 @@ uses
Dialogs, HSLColorPicker, ComCtrls, StdCtrls, ExtCtrls, mbColorPreview,
HexaColorPicker, mbColorPalette, HSLRingPicker, HSVColorPicker, PalUtils,
SLHColorPicker, mbDeskPickerButton, mbOfficeColorDialog, SColorPicker,
- HColorPicker, LVColorPicker, mbTrackBarPicker, LColorPicker, HRingPicker,
- SLColorPicker, HSColorPicker, IniFiles, mbColorPickerControl, BColorPicker,
- GColorPicker, RColorPicker, KColorPicker, YColorPicker, MColorPicker,
- CColorPicker, CIEBColorPicker, CIEAColorPicker, Typinfo, CIELColorPicker,
- BAxisColorPicker, GAxisColorPicker, RAxisColorPicker, mbColorTree,
- mbColorList, mbBasicPicker,
+ HColorPicker, LVColorPicker, mbTrackBarPicker, HRingPicker, SLColorPicker,
+ HSColorPicker, IniFiles, mbColorPickerControl, BColorPicker, GColorPicker,
+ RColorPicker, KColorPicker, YColorPicker, MColorPicker, CColorPicker,
+ CIEBColorPicker, CIEAColorPicker, Typinfo, CIELColorPicker, BAxisColorPicker,
+ GAxisColorPicker, RAxisColorPicker, mbColorTree, mbColorList;
- VColorPicker;
+ { vmbColorList, mbBasicPicker, }
type
@@ -58,8 +57,8 @@ type
mbDeskPickerButton1: TmbDeskPickerButton;
mbOfficeColorDialog1: TmbOfficeColorDialog;
OfficeColorDialogButton: TButton;
- LColorPicker1: TLColorPicker;
- VColorPicker1: TVColorPicker;
+ LVColorPicker2: TLVColorPicker;
+ LVColorPicker3: TLVColorPicker;
HColorPicker1: THColorPicker;
SColorPicker1: TSColorPicker;
HSColorPicker1: THSColorPicker;
@@ -426,7 +425,7 @@ begin
else if PageControl1.ActivePage = Tabsheet5 then
begin
HSVColorPicker1.Enabled := CbEnabled.Checked;
- VColorPicker1.Enabled := CbEnabled.Checked;
+ LVColorPicker1.Enabled := CbEnabled.Checked;
end
else if PageControl1.ActivePage = Tabsheet6 then
SLHColorPicker1.Enabled := CbEnabled.Checked
@@ -439,8 +438,8 @@ begin
begin
mbDeskPickerButton1.Enabled := CbEnabled.Checked;
OfficeColorDialogButton.Enabled := CbEnabled.Checked;
- LColorPicker1.Enabled := CbEnabled.Checked;
- VColorPicker1.Enabled := CbEnabled.Checked;
+ LVColorPicker2.Enabled := CbEnabled.Checked;
+ LVColorPicker3.Enabled := CbEnabled.Checked;
HColorPicker1.Enabled := CbEnabled.Checked;
SColorPicker1.Enabled := CbEnabled.Checked;
end
diff --git a/components/mbColorLib/examples/trackbars/main.lfm b/components/mbColorLib/examples/trackbars/main.lfm
index 499fd4ce2..d4751a386 100644
--- a/components/mbColorLib/examples/trackbars/main.lfm
+++ b/components/mbColorLib/examples/trackbars/main.lfm
@@ -14,10 +14,10 @@ object Form1: TForm1
Height = 429
Top = 0
Width = 400
- ActivePage = tabVertical
+ ActivePage = tabHorizontal
Align = alClient
Anchors = [akTop, akRight]
- TabIndex = 0
+ TabIndex = 1
TabOrder = 0
object tabVertical: TTabSheet
Caption = 'vertical'
@@ -177,37 +177,20 @@ object Form1: TForm1
Caption = 'R'
ParentColor = False
end
- object VColorPickerV: TVColorPicker
- AnchorSideTop.Control = HColorPickerV
- Left = 368
- Height = 279
- Top = 23
- Width = 22
- HintFormat = 'Value: %value'
- Layout = lyVertical
- Visible = False
- TabOrder = 5
- OnChange = SLVPickerV_Change
- Hue = 0
- Saturation = 0
- Value = 255
- SelectedColor = clWhite
- end
- object LColorPickerV: TLColorPicker
+ object LVColorPickerV: TLVColorPicker
AnchorSideTop.Control = HColorPickerV
Left = 350
Height = 279
Top = 23
Width = 22
- HintFormat = 'Luminance: %value'
+ SelectedColor = 14869218
Layout = lyVertical
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 6
+ TabOrder = 5
OnChange = SLVPickerV_Change
- Hue = 0
- Saturation = 0
Luminance = 226
- SelectedColor = 14869218
+ LHintFormat = 'Luminance: %l'
+ VHintFormat = 'Value: %v'
end
object HColorPickerV: THColorPicker
AnchorSideTop.Control = LblH
@@ -216,14 +199,12 @@ object Form1: TForm1
Height = 279
Top = 23
Width = 22
- HintFormat = 'Hue: %value'
Layout = lyVertical
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 7
+ TabOrder = 6
OnChange = HPickerV_Change
- Hue = 0
- Saturation = 255
- Value = 255
+ Luminance = 128
+ HintFormat = 'Hue: %value'
end
object KColorPickerV: TKColorPicker
AnchorSideTop.Control = CColorPickerV
@@ -231,13 +212,13 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Black: %value'
+ SelectedColor = 16711422
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 8
+ TabOrder = 7
OnChange = CMYKPickerV_Change
Cyan = 0
Black = 1
- SelectedColor = 16711422
+ HintFormat = 'Black: %value'
end
object YColorPickerV: TYColorPicker
AnchorSideTop.Control = CColorPickerV
@@ -245,11 +226,11 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Yellow: %value'
- Anchors = [akTop, akLeft, akBottom]
- TabOrder = 9
- OnChange = CMYKPickerV_Change
SelectedColor = clYellow
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 8
+ OnChange = CMYKPickerV_Change
+ HintFormat = 'Yellow: %value'
end
object MColorPickerV: TMColorPicker
AnchorSideTop.Control = CColorPickerV
@@ -257,11 +238,11 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Magenta: %value'
- Anchors = [akTop, akLeft, akBottom]
- TabOrder = 10
- OnChange = CMYKPickerV_Change
SelectedColor = clFuchsia
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 9
+ OnChange = CMYKPickerV_Change
+ HintFormat = 'Magenta: %value'
end
object CColorPickerV: TCColorPicker
AnchorSideTop.Control = LblC
@@ -270,11 +251,11 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Cyan: %value'
- Anchors = [akTop, akLeft, akBottom]
- TabOrder = 11
- OnChange = CMYKPickerV_Change
SelectedColor = clAqua
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 10
+ OnChange = CMYKPickerV_Change
+ HintFormat = 'Cyan: %value'
end
object RColorPickerV: TRColorPicker
AnchorSideTop.Control = LblR
@@ -283,12 +264,12 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Red: %value'
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 12
+ TabOrder = 11
OnChange = RGBPickerV_Change
Green = 0
Blue = 0
+ HintFormat = 'Red: %value'
end
object GColorPickerV: TGColorPicker
AnchorSideTop.Control = RColorPickerV
@@ -296,13 +277,13 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Green: %value'
+ SelectedColor = clLime
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 13
+ TabOrder = 12
OnChange = RGBPickerV_Change
Red = 0
Blue = 0
- SelectedColor = clLime
+ HintFormat = 'Green: %value'
end
object BColorPickerV: TBColorPicker
AnchorSideTop.Control = RColorPickerV
@@ -310,13 +291,13 @@ object Form1: TForm1
Height = 297
Top = 23
Width = 22
- HintFormat = 'Blue: %value'
+ SelectedColor = clBlue
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 14
+ TabOrder = 13
OnChange = RGBPickerV_Change
Green = 0
Red = 0
- SelectedColor = clBlue
+ HintFormat = 'Blue: %value'
end
object SColorPickerV: TSColorPicker
AnchorSideTop.Control = HColorPickerV
@@ -324,14 +305,12 @@ object Form1: TForm1
Height = 279
Top = 23
Width = 22
- HintFormat = 'Saturation: %value'
Layout = lyVertical
Anchors = [akTop, akLeft, akBottom]
- TabOrder = 15
+ TabOrder = 14
OnChange = SLVPickerV_Change
- Hue = 0
- Saturation = 255
- Value = 255
+ Luminance = 128
+ HintFormat = 'Saturation: %value'
end
end
end
@@ -491,35 +470,19 @@ object Form1: TForm1
Caption = 'R'
ParentColor = False
end
- object VColorPickerH: TVColorPicker
- Left = 128
- Height = 22
- Top = 373
- Width = 224
- BevelInner = bvLowered
- HintFormat = 'Value: %value'
- Visible = False
- TabOrder = 5
- OnChange = SLVPickerH_Change
- Hue = 0
- Saturation = 0
- Value = 255
- SelectedColor = clWhite
- end
- object LColorPickerH: TLColorPicker
+ object LVColorPickerH: TLVColorPicker
Left = 24
Height = 22
Top = 344
Width = 301
- BevelInner = bvLowered
- HintFormat = 'Luminance: %value'
- Anchors = [akTop, akLeft, akRight]
- TabOrder = 6
- OnChange = SLVPickerH_Change
- Hue = 0
- Saturation = 0
- Luminance = 226
SelectedColor = 14869218
+ BevelInner = bvLowered
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 5
+ OnChange = SLVPickerH_Change
+ Luminance = 226
+ LHintFormat = 'Luminance: %l'
+ VHintFormat = 'Value: %v'
end
object SColorPickerH: TSColorPicker
Left = 24
@@ -527,13 +490,11 @@ object Form1: TForm1
Top = 312
Width = 301
BevelOuter = bvLowered
- HintFormat = 'Saturation: %value'
Anchors = [akTop, akLeft, akRight]
- TabOrder = 7
+ TabOrder = 6
OnChange = SLVPickerH_Change
- Hue = 0
- Saturation = 255
- Value = 255
+ Luminance = 128
+ HintFormat = 'Saturation: %value'
end
object HColorPickerH: THColorPicker
Left = 24
@@ -541,104 +502,102 @@ object Form1: TForm1
Top = 282
Width = 301
BevelOuter = bvLowered
- HintFormat = 'Hue: %value'
Anchors = [akTop, akLeft, akRight]
- TabOrder = 8
+ TabOrder = 7
OnChange = HPickerH_Change
- Hue = 0
- Saturation = 255
- Value = 255
+ Luminance = 128
+ HintFormat = 'Hue: %value'
end
object KColorPickerH: TKColorPicker
Left = 24
Height = 22
Top = 224
Width = 301
- HintFormat = 'Black: %value'
+ SelectedColor = 16711422
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 9
+ TabOrder = 8
OnChange = CMYKPickerH_Change
Cyan = 0
Black = 1
- SelectedColor = 16711422
+ HintFormat = 'Black: %value'
end
object MColorPickerH: TMColorPicker
Left = 24
Height = 22
Top = 160
Width = 301
- HintFormat = 'Magenta: %value'
+ SelectedColor = clFuchsia
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 10
+ TabOrder = 9
OnChange = CMYKPickerH_Change
- SelectedColor = clFuchsia
+ HintFormat = 'Magenta: %value'
end
object YColorPickerH: TYColorPicker
Left = 24
Height = 22
Top = 192
Width = 301
- HintFormat = 'Yellow: %value'
+ SelectedColor = clYellow
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 11
+ TabOrder = 10
OnChange = CMYKPickerH_Change
- SelectedColor = clYellow
+ HintFormat = 'Yellow: %value'
end
object CColorPickerH: TCColorPicker
Left = 24
Height = 22
Top = 128
Width = 301
- HintFormat = 'Cyan: %value'
+ SelectedColor = clAqua
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 12
+ TabOrder = 11
OnChange = CMYKPickerH_Change
- SelectedColor = clAqua
+ HintFormat = 'Cyan: %value'
end
object BColorPickerH: TBColorPicker
Left = 24
Height = 22
Top = 80
Width = 301
- HintFormat = 'Blue: %value'
+ SelectedColor = clBlue
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 13
+ TabOrder = 12
OnChange = RGBPickerH_Change
Green = 0
Red = 0
- SelectedColor = clBlue
+ HintFormat = 'Blue: %value'
end
object GColorPickerH: TGColorPicker
Left = 24
Height = 22
Top = 48
Width = 301
- HintFormat = 'Green: %value'
+ SelectedColor = clLime
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 14
+ TabOrder = 13
OnChange = RGBPickerH_Change
Red = 0
Blue = 0
- SelectedColor = clLime
+ HintFormat = 'Green: %value'
end
object RColorPickerH: TRColorPicker
Left = 24
Height = 22
Top = 16
Width = 301
- HintFormat = 'Red: %value'
Layout = lyHorizontal
Anchors = [akTop, akLeft, akRight]
- TabOrder = 15
+ TabOrder = 14
OnChange = RGBPickerH_Change
Green = 0
Blue = 0
+ HintFormat = 'Red: %value'
end
end
end
diff --git a/components/mbColorLib/examples/trackbars/main.pas b/components/mbColorLib/examples/trackbars/main.pas
index 8ca12434b..03665c1f8 100644
--- a/components/mbColorLib/examples/trackbars/main.pas
+++ b/components/mbColorLib/examples/trackbars/main.pas
@@ -8,7 +8,7 @@ uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
StdCtrls, ExtCtrls, BColorPicker, GColorPicker, RColorPicker, CColorPicker,
YColorPicker, MColorPicker, KColorPicker, HColorPicker, SColorPicker,
- LColorPicker, VColorPicker, mbColorPreview;
+ LVColorPicker, mbColorPreview;
type
@@ -49,8 +49,6 @@ type
Label7: TLabel;
LblH: TLabel;
Label9: TLabel;
- LColorPickerH: TLColorPicker;
- LColorPickerV: TLColorPicker;
CMYKh: TmbColorPreview;
HSLVh: TmbColorPreview;
Panel1: TPanel;
@@ -72,8 +70,8 @@ type
SColorPickerV: TSColorPicker;
tabVertical: TTabSheet;
tabHorizontal: TTabSheet;
- VColorPickerH: TVColorPicker;
- VColorPickerV: TVColorPicker;
+ LVColorPickerH: TLVColorPicker;
+ LVColorPickerV: TLVColorPicker;
YColorPickerH: TYColorPicker;
YColorPickerV: TYColorPicker;
procedure CMYKPickerV_Change(Sender: TObject);
@@ -96,12 +94,18 @@ type
var
Form1: TForm1;
+const
+ MaxHue = 360;
+ MaxSat = 255;
+ MaxLum = 255;
+ MaxVal = 255;
+
implementation
{$R *.lfm}
uses
- LCLType, LCLIntf, ScanLines, RGBCMYKUtils, RGBHSLUtils, RGBHSVUtils;
+ LCLType, LCLIntf, ScanLines, RGBCMYKUtils, mbColorConv;
{ TForm1 }
@@ -124,8 +128,9 @@ begin
'Cyan: %d - Magenta: %d - Yellow: %d - Black: %d'#13 +
'Hue: %d - Saturation: %d - Luminance: %d - Value: %d', [
GetRValue(c), GetGValue(c), GetBValue(c),
- GetCValue(c), GetMValue(c), GetYvalue(c), GetKValue(c),
- GetHValue(c), GetSValue(c), GetLValue(c), GetVValue(c)
+ GetCValue(c), GetMValue(c), GetYValue(c), GetKValue(c),
+ round(GetRelHValue(c)*MaxHue), round(GetRelSValueHSL(c)*MaxSat),
+ round(GetRelLValue(c)*MaxLum), round(GetRelVValue(c)*MaxVal)
]);
end;
@@ -149,26 +154,13 @@ begin
'Hue: %d - Saturation: %d - Luminance: %d - Value: %d', [
GetRValue(c), GetGValue(c), GetBValue(c),
GetCValue(c), GetMValue(c), GetYvalue(c), GetKValue(c),
- GetHValue(c), GetSValue(c), GetLValue(c), GetVValue(c)
+ round(GetRelHValue(c)*MaxHue), round(GetRelSValueHSL(c)*MaxSat),
+ round(GetRelLValue(c)*MaxLum), round(GetRelVValue(c)*MaxVal)
]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
- MaxHue := 359;
- MaxSat := 240;
- MaxLum := 240;
-
- VColorPickerH.Left := LColorPickerH.Left;
- VColorPickerH.Top := LColorPickerH.Top;
- VColorPickerH.Width := LColorPickerH.Width;
- VColorPickerH.Anchors := [akLeft, akTop, akRight];
-
- VColorPickerV.Left := LColorPickerV.Left;
- VColorPickerV.Top := LColorPickerV.Top;
- VColorPickerV.Height := LColorPickerV.Height;
- VColorPickerV.Anchors := [akLeft, akTop, akBottom];
-
RGBPickerH_Change(nil);
CMYKPickerH_Change(nil);
SLVPickerH_Change(nil);
@@ -180,20 +172,21 @@ end;
procedure TForm1.HPickerH_Change(Sender: TObject);
begin
- exit;
+ if ComponentState <> [] then
+ exit;
SLVPickerH_Change(nil);
SColorPickerH.Hue := HColorPickerH.Hue;
- LColorPickerH.Hue := HColorPickerH.Hue;
- VColorPickerH.Hue := HColorPickerH.Hue;
+ LVColorPickerH.Hue := HColorPickerH.Hue;
end;
procedure TForm1.HPickerV_Change(Sender: TObject);
begin
+ if ComponentState <> [] then
+ exit;
SLVPickerV_Change(nil);
SColorPickerV.Hue := HColorPickerV.Hue;
- LColorPickerV.Hue := HColorPickerV.Hue;
- VColorPickerV.Hue := HColorPickerV.Hue;
+ LVColorPickerV.Hue := HColorPickerV.Hue;
end;
procedure TForm1.rbHSLv_Change(Sender: TObject);
@@ -201,14 +194,16 @@ begin
if rbHSLv.Checked then
begin
lblLVv.Caption := 'L';
- VColorPickerV.Visible := false;
- LColorPickerV.Visible := true;
+ HColorPickerV.BrightnessMode := bmLuminance;
+ SColorPickerV.BrightnessMode := bmLuminance;
+ LVColorPickerV.BrightnessMode := bmLuminance;
end;
if rbHSVv.Checked then
begin
lblLVv.Caption := 'V';
- LColorPickerV.Visible := false;
- VColorPickerV.Visible := true;
+ HColorPickerV.BrightnessMode := bmValue;
+ SColorPickerV.BrightnessMode := bmValue;
+ LVColorPickerV.BrightnessMode := bmValue;
end;
HPickerV_Change(nil);
end;
@@ -218,14 +213,16 @@ begin
if rbHSLh.Checked then
begin
lblLVh.Caption := 'L';
- VColorPickerH.Visible := false;
- LColorPickerH.Visible := true;
+ HColorPickerH.BrightnessMode := bmLuminance;
+ SColorPickerH.BrightnessMode := bmLuminance;
+ LVColorPickerH.BrightnessMode := bmLuminance;
end;
if rbHSVh.Checked then
begin
lblLVh.Caption := 'V';
- lColorPickerH.Visible := false;
- VColorPickerH.Visible := true;
+ HColorPickerH.BrightnessMode := bmValue;
+ SColorPickerH.BrightnessMode := bmValue;
+ LVColorPickerH.BrightnessMode := bmValue;
end;
HPickerH_Change(nil);
end;
@@ -248,7 +245,8 @@ begin
'Hue: %d - Saturation: %d - Luminance: %d - Value: %d', [
GetRValue(c), GetGValue(c), GetBValue(c),
GetCValue(c), GetMValue(c), GetYvalue(c), GetKValue(c),
- GetHValue(c), GetSValue(c), GetLValue(c), GetVValue(c)
+ round(GetRelHValue(c)*MaxHue), round(GetRelSValueHSL(c)*MaxSat),
+ round(GetRelLValue(c)*MaxLum), round(GetRelVValue(c)*MaxVal)
]);
end;
@@ -270,7 +268,8 @@ begin
'Hue: %d - Saturation: %d - Luminance: %d - Value: %d', [
GetRValue(c), GetGValue(c), GetBValue(c),
GetCValue(c), GetMValue(c), GetYvalue(c), GetKValue(c),
- GetHValue(c), GetSValue(c), GetLValue(c), GetVValue(c)
+ round(GetRelHValue(c)*MaxHue), round(GetRelSValueHSL(c)*MaxSat),
+ round(GetRelLValue(c)*MaxLum), round(GetRelVValue(c)*MaxVal)
]);
end;
@@ -279,18 +278,16 @@ var
triple: TRGBTriple;
c: TColor;
begin
- if (HSLVh = nil) or (HColorPickerH = nil) or (SColorPickerH = nil) then
+ if (HSLVh = nil) or (HColorPickerH = nil) or (SColorPickerH = nil) or
+ (LVColorPickerH = nil)
+ then
exit;
- if rbHSLh.Checked then begin
- if (LColorPickerH = nil) then
- exit;
- HSLVh.Color := HSLRangeToRGB(HColorPickerH.Hue, SColorPickerH.Saturation, LColorPickerH.Luminance);
- end;
- if rbHSVh.Checked then begin
- if (VColorPickerH = nil) then
- exit;
- HSLVh.Color := HSVRangetoColor(HColorPickerH.Hue, SColorPickerH.Saturation, VColorPickerH.Value);
- end;
+
+ if rbHSLh.Checked then
+ HSLVh.Color := HSLToColor(HColorPickerH.RelHue, SColorPickerH.RelSaturation, LVColorPickerH.RelLuminance);
+
+ if rbHSVh.Checked then
+ HSLVh.Color := HSVToColor(HColorPickerH.RelHue, SColorPickerH.RelSaturation, LVColorPickerH.RelValue);
c := HSLVh.Color;
HSLVh.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
@@ -298,31 +295,31 @@ begin
'Hue: %d - Saturation: %d - Luminance: %d - Value: %d', [
GetRValue(c), GetGValue(c), GetBValue(c),
GetCValue(c), GetMValue(c), GetYvalue(c), GetKValue(c),
- GetHValue(c), GetSValue(c), GetLValue(c), GetVValue(c)
+ round(GetRelHValue(c)*MaxHue), round(GetRelSValueHSL(c)*MaxSat),
+ round(GetRelLValue(c)*MaxLum), round(GetRelVValue(c)*MaxVal)
]);
end;
procedure TForm1.SLVPickerV_Change(Sender: TObject);
var
- triple: TRGBTriple;
c: TColor;
begin
- if (HSLVv = nil) or (HColorPickerV = nil) or (SColorPickerV = nil) then
+ if (HSLVv = nil) or (HColorPickerV = nil) or (SColorPickerV = nil) or
+ (LVColorPickerV = nil)
+ then
exit;
+
if rbHSLv.Checked then begin
- if (LColorPickerV = nil) then
+ if (LVColorPickerV = nil) then
exit;
- triple := HSLToRGBTriple(HColorPickerV.Hue, SColorPickerV.Saturation, LColorPickerV.Luminance);
- HSLVv.Color := RGBTripleToColor(triple);
+ c := HSLToColor(HColorPickerV.RelHue, SColorPickerV.RelSaturation, LVColorPickerV.RelLuminance);
+ HSLVv.Color := c;
end;
if rbHSVv.Checked then begin
- if (VColorPickerV = nil) then
+ if (LVColorPickerV = nil) then
exit;
- HSLVv.Color := HSVtoColor(
- HColorPickerV.Hue/HColorPickerV.MaxHue,
- SColorPickerV.Saturation/SColorPickerV.MaxSaturation,
- VColorPickerV.Value/VColorPickerV.MaxValue
- );
+ c := HSVtoColor(HColorPickerV.RelHue, SColorPickerV.RelSaturation, LVColorPickerV.RelValue);
+ HSLVv.Color := c;
end;
c := HSLVv.Color;
@@ -331,7 +328,8 @@ begin
'Hue: %d - Saturation: %d - Luminance: %d - Value: %d', [
GetRValue(c), GetGValue(c), GetBValue(c),
GetCValue(c), GetMValue(c), GetYvalue(c), GetKValue(c),
- GetHValue(c), GetSValue(c), GetLValue(c), GetVValue(c)
+ round(GetRelHValue(c)*MaxHue), round(GetRelSValueHSL(c)*MaxSat),
+ round(GetRelLValue(c)*MaxLum), round(GetRelVValue(c)*MaxVal)
]);
end;
diff --git a/components/mbColorLib/mbReg.lrs b/components/mbColorLib/mbReg.lrs
index ce2ad44fa..73158f5b5 100644
--- a/components/mbColorLib/mbReg.lrs
+++ b/components/mbColorLib/mbReg.lrs
@@ -406,15 +406,6 @@ LazarusResources.Add('TKColorPicker','PNG',[
+#220#162#229#255#224#217#143#182'e'#29'y%'#22#197'[r'#31#189#0#0#0#0'IEND'
+#174'B`'#130
]);
-LazarusResources.Add('TLColorPicker','PNG',[
- #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0
- +#0#0#9'pHYs'#0#0#11#19#0#0#11#19#1#0#154#156#24#0#0#0'bIDATH'#199#237#146#187
- +#10#128'0'#12'EO'#193#255#255'=G'#199'tK'#198'nq'#176'R'#199#182'"'#10#230'@'
- +' !'#185'y@ x'#155#212'Q'#227'w'#244#169's'#17#159#213#166#129'k}R7'#132#255
- +#244#139'\'#213'Q'#133#156'A'#228'0'#179#230#139#180'\)l@'#6#164#154']'#252
- +'3^k'#239#229#233#11'b@'#12#8#130'/'#176#3#3#136'% V"'#162#11#0#0#0#0'IEND'
- +#174'B`'#130
-]);
LazarusResources.Add('TmbColorList','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0
+#0#0#9'pHYs'#0#0#11#19#0#0#11#19#1#0#154#156#24#0#0#0#216'IDATH'#199'c`'#160
@@ -631,21 +622,6 @@ LazarusResources.Add('TSLHColorPicker','PNG',[
+'?u'#29#24'c'#240#222#167#23'$/'#242'0'#159#129#23#229#127'l'#134#236#0'N'#26
+#216#253'+?'#253'?!R'#213'K'#11'&'#20#141#0#0#0#0'IEND'#174'B`'#130
]);
-LazarusResources.Add('TVColorPicker','PNG',[
- #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0
- +#0#0#9'pHYs'#0#0#11#19#0#0#11#19#1#0#154#156#24#0#0#0#242'IDATH'#199#237#149
- +'OJ'#196'0'#28#133#191#252'k'#133#193#201'"'#139#129'\`
-
+
@@ -69,147 +69,139 @@
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+