diff --git a/components/mbColorLib/Demo/MXS Website.url b/components/mbColorLib/Demo/MXS Website.url
deleted file mode 100644
index 2eac68223..000000000
--- a/components/mbColorLib/Demo/MXS Website.url
+++ /dev/null
@@ -1,4 +0,0 @@
-[InternetShortcut]
-URL=http://mxs.bergsoft.net
-IconIndex=1
-IconFile="D:\Prog_Lazarus\svn\lazarus-ccr\components\mbColorLib\Demo\Demo.exe"
diff --git a/components/mbColorLib/Demo/Demo.lpi b/components/mbColorLib/examples/fulldemo/Demo.lpi
similarity index 96%
rename from components/mbColorLib/Demo/Demo.lpi
rename to components/mbColorLib/examples/fulldemo/Demo.lpi
index 33e1ffed0..c5843f693 100644
--- a/components/mbColorLib/Demo/Demo.lpi
+++ b/components/mbColorLib/examples/fulldemo/Demo.lpi
@@ -59,6 +59,9 @@
+
+
+
diff --git a/components/mbColorLib/Demo/Demo.lpr b/components/mbColorLib/examples/fulldemo/Demo.lpr
similarity index 100%
rename from components/mbColorLib/Demo/Demo.lpr
rename to components/mbColorLib/examples/fulldemo/Demo.lpr
diff --git a/components/mbColorLib/Demo/clr.ico b/components/mbColorLib/examples/fulldemo/clr.ico
similarity index 100%
rename from components/mbColorLib/Demo/clr.ico
rename to components/mbColorLib/examples/fulldemo/clr.ico
diff --git a/components/mbColorLib/Demo/main.lfm b/components/mbColorLib/examples/fulldemo/main.lfm
similarity index 100%
rename from components/mbColorLib/Demo/main.lfm
rename to components/mbColorLib/examples/fulldemo/main.lfm
diff --git a/components/mbColorLib/Demo/main.pas b/components/mbColorLib/examples/fulldemo/main.pas
similarity index 100%
rename from components/mbColorLib/Demo/main.pas
rename to components/mbColorLib/examples/fulldemo/main.pas
diff --git a/components/mbColorLib/Demo/mxico.res b/components/mbColorLib/examples/fulldemo/mxico.res
similarity index 100%
rename from components/mbColorLib/Demo/mxico.res
rename to components/mbColorLib/examples/fulldemo/mxico.res
diff --git a/components/mbColorLib/Demo/Demo.ico b/components/mbColorLib/examples/trackbars/Demo.ico
similarity index 100%
rename from components/mbColorLib/Demo/Demo.ico
rename to components/mbColorLib/examples/trackbars/Demo.ico
diff --git a/components/mbColorLib/examples/trackbars/Demo.lpi b/components/mbColorLib/examples/trackbars/Demo.lpi
new file mode 100644
index 000000000..c5843f693
--- /dev/null
+++ b/components/mbColorLib/examples/trackbars/Demo.lpi
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/mbColorLib/examples/trackbars/Demo.lpr b/components/mbColorLib/examples/trackbars/Demo.lpr
new file mode 100644
index 000000000..bcd336344
--- /dev/null
+++ b/components/mbColorLib/examples/trackbars/Demo.lpr
@@ -0,0 +1,21 @@
+program Demo;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
+ cthreads,
+ {$ENDIF}{$ENDIF}
+ Interfaces, // this includes the LCL widgetset
+ Forms, main
+ { you can add units after this };
+
+{$R *.res}
+
+begin
+ RequireDerivedFormResource := True;
+ Application.Initialize;
+ Application.CreateForm(TForm1, Form1);
+ Application.Run;
+end.
+
diff --git a/components/mbColorLib/examples/trackbars/main.lfm b/components/mbColorLib/examples/trackbars/main.lfm
new file mode 100644
index 000000000..391f1ed76
--- /dev/null
+++ b/components/mbColorLib/examples/trackbars/main.lfm
@@ -0,0 +1,606 @@
+object Form1: TForm1
+ Left = 280
+ Height = 429
+ Top = 130
+ Width = 400
+ Caption = 'Form1'
+ ClientHeight = 429
+ ClientWidth = 400
+ OnCreate = FormCreate
+ ShowHint = True
+ LCLVersion = '1.7'
+ object PageControl1: TPageControl
+ Left = 0
+ Height = 429
+ Top = 0
+ Width = 400
+ ActivePage = tabHorizontal
+ Align = alClient
+ Anchors = [akTop, akRight]
+ TabIndex = 1
+ TabOrder = 0
+ object tabVertical: TTabSheet
+ Caption = 'vertical'
+ ClientHeight = 401
+ ClientWidth = 392
+ object Panel1: TPanel
+ Left = 0
+ Height = 401
+ Top = 0
+ Width = 392
+ Align = alClient
+ BevelOuter = bvNone
+ ClientHeight = 401
+ ClientWidth = 392
+ Color = clForm
+ ParentColor = False
+ TabOrder = 0
+ object HSLVv: TmbColorPreview
+ Left = 286
+ Height = 60
+ Top = 329
+ Width = 73
+ Anchors = [akLeft, akBottom]
+ end
+ object Bevel4: TBevel
+ Left = 264
+ Height = 469
+ Top = 8
+ Width = 8
+ Anchors = [akTop, akLeft, akRight]
+ Shape = bsLeftLine
+ end
+ object CMYKv: TmbColorPreview
+ Left = 136
+ Height = 60
+ Top = 329
+ Width = 107
+ Anchors = [akLeft, akBottom]
+ end
+ object Bevel3: TBevel
+ Left = 112
+ Height = 469
+ Top = 8
+ Width = 8
+ Anchors = [akTop, akLeft, akRight]
+ Shape = bsLeftLine
+ end
+ object RGBv: TmbColorPreview
+ Left = 12
+ Height = 60
+ Top = 329
+ Width = 75
+ Anchors = [akLeft, akBottom]
+ end
+ object rbHSVv: TRadioButton
+ Left = 328
+ Height = 19
+ Top = 305
+ Width = 42
+ Anchors = [akLeft, akBottom]
+ Caption = 'HSV'
+ OnChange = rbHSLv_Change
+ TabOrder = 3
+ end
+ object rbHSLv: TRadioButton
+ Left = 280
+ Height = 19
+ Top = 305
+ Width = 41
+ Anchors = [akLeft, akBottom]
+ Caption = 'HSL'
+ Checked = True
+ OnChange = rbHSLv_Change
+ TabOrder = 4
+ TabStop = True
+ end
+ object lblLVv: TLabel
+ Left = 352
+ Height = 15
+ Top = 8
+ Width = 6
+ Caption = 'L'
+ ParentColor = False
+ end
+ object Label9: TLabel
+ Left = 320
+ Height = 15
+ Top = 8
+ Width = 6
+ Caption = 'S'
+ ParentColor = False
+ end
+ object Label8: TLabel
+ Left = 288
+ Height = 15
+ Top = 8
+ Width = 9
+ Caption = 'H'
+ ParentColor = False
+ end
+ object Label7: TLabel
+ Left = 232
+ Height = 15
+ Top = 8
+ Width = 7
+ Caption = 'K'
+ ParentColor = False
+ end
+ object Label6: TLabel
+ Left = 200
+ Height = 15
+ Top = 8
+ Width = 7
+ Caption = 'Y'
+ ParentColor = False
+ end
+ object Label5: TLabel
+ Left = 168
+ Height = 15
+ Top = 8
+ Width = 11
+ Caption = 'M'
+ ParentColor = False
+ end
+ object Label4: TLabel
+ Left = 136
+ Height = 15
+ Top = 8
+ Width = 8
+ Caption = 'C'
+ ParentColor = False
+ end
+ object Label3: TLabel
+ Left = 77
+ Height = 15
+ Top = 8
+ Width = 7
+ Caption = 'B'
+ ParentColor = False
+ end
+ object Label2: TLabel
+ Left = 45
+ Height = 15
+ Top = 8
+ Width = 8
+ Caption = 'G'
+ ParentColor = False
+ end
+ object Label1: TLabel
+ Left = 13
+ Height = 15
+ Top = 8
+ Width = 7
+ Caption = 'R'
+ ParentColor = False
+ end
+ object VColorPickerV: TVColorPicker
+ Left = 368
+ Height = 278
+ Top = 24
+ Width = 22
+ HintFormat = 'Value: %value'
+ Layout = lyVertical
+ Visible = False
+ TabOrder = 5
+ OnChange = SLVPickerV_Change
+ SelectedColor = clWhite
+ end
+ object LColorPickerV: TLColorPicker
+ Left = 350
+ Height = 278
+ Top = 24
+ Width = 22
+ HintFormat = 'Luminance: %value'
+ Layout = lyVertical
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 6
+ OnChange = SLVPickerV_Change
+ Saturation = 255
+ Luminance = 127
+ SelectedColor = 254
+ end
+ object HColorPickerV: THColorPicker
+ Left = 288
+ Height = 278
+ Top = 24
+ Width = 22
+ HintFormat = 'Hue: %value'
+ Layout = lyVertical
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 7
+ OnChange = HPickerV_Change
+ end
+ object KColorPickerV: TKColorPicker
+ Left = 232
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Black: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 8
+ OnChange = CMYKPickerV_Change
+ Cyan = 0
+ Black = 255
+ SelectedColor = clBlack
+ end
+ object YColorPickerV: TYColorPicker
+ Left = 200
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Yellow: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 9
+ OnChange = CMYKPickerV_Change
+ SelectedColor = clYellow
+ end
+ object MColorPickerV: TMColorPicker
+ Left = 168
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Magenta: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 10
+ OnChange = CMYKPickerV_Change
+ SelectedColor = clFuchsia
+ end
+ object CColorPickerV: TCColorPicker
+ Left = 136
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Cyan: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 11
+ OnChange = CMYKPickerV_Change
+ SelectedColor = clAqua
+ end
+ object RColorPickerV: TRColorPicker
+ Left = 12
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Red: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 12
+ OnChange = RGBPickerV_Change
+ Green = 0
+ Blue = 0
+ end
+ object GColorPickerV: TGColorPicker
+ Left = 45
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Green: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 13
+ OnChange = RGBPickerV_Change
+ Red = 0
+ Blue = 0
+ SelectedColor = clLime
+ end
+ object BColorPickerV: TBColorPicker
+ Left = 76
+ Height = 296
+ Top = 24
+ Width = 22
+ HintFormat = 'Blue: %value'
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 14
+ OnChange = RGBPickerV_Change
+ Red = 0
+ Green = 0
+ SelectedColor = clBlue
+ end
+ object SColorPickerV: TSColorPicker
+ Left = 318
+ Height = 278
+ Top = 24
+ Width = 22
+ HintFormat = 'Saturation: %value'
+ Layout = lyVertical
+ Anchors = [akTop, akLeft, akBottom]
+ TabOrder = 15
+ OnChange = SLVPickerV_Change
+ end
+ end
+ end
+ object tabHorizontal: TTabSheet
+ Caption = 'horizontal'
+ ClientHeight = 401
+ ClientWidth = 392
+ object Panel2: TPanel
+ Left = 0
+ Height = 401
+ Top = 0
+ Width = 392
+ Align = alClient
+ BevelOuter = bvNone
+ ClientHeight = 401
+ ClientWidth = 392
+ Color = clForm
+ ParentColor = False
+ TabOrder = 0
+ object Bevel1: TBevel
+ Left = 1
+ Height = 11
+ Top = 114
+ Width = 386
+ Anchors = [akTop, akLeft, akRight]
+ Shape = bsTopLine
+ end
+ object Bevel2: TBevel
+ Left = -1
+ Height = 11
+ Top = 256
+ Width = 386
+ Anchors = [akTop, akLeft, akRight]
+ Shape = bsTopLine
+ end
+ object rbHSVh: TRadioButton
+ Left = 72
+ Height = 19
+ Top = 376
+ Width = 42
+ Caption = 'HSV'
+ OnChange = rbHSLh_Change
+ TabOrder = 0
+ end
+ object rbHSLh: TRadioButton
+ Left = 24
+ Height = 19
+ Top = 376
+ Width = 41
+ Caption = 'HSL'
+ Checked = True
+ OnChange = rbHSLh_Change
+ TabOrder = 1
+ TabStop = True
+ end
+ object HSLVh: TmbColorPreview
+ Left = 329
+ Height = 86
+ Top = 282
+ Width = 46
+ Anchors = [akTop, akRight]
+ end
+ object CMYKh: TmbColorPreview
+ Left = 329
+ Height = 110
+ Top = 128
+ Width = 46
+ Anchors = [akTop, akRight]
+ end
+ object RGBh: TmbColorPreview
+ Left = 329
+ Height = 77
+ Top = 16
+ Width = 46
+ Anchors = [akTop, akRight]
+ end
+ object lblLVh: TLabel
+ Left = 8
+ Height = 15
+ Top = 346
+ Width = 6
+ Caption = 'L'
+ ParentColor = False
+ end
+ object Label20: TLabel
+ Left = 8
+ Height = 15
+ Top = 314
+ Width = 6
+ Caption = 'S'
+ ParentColor = False
+ end
+ object Label19: TLabel
+ Left = 8
+ Height = 15
+ Top = 282
+ Width = 9
+ Caption = 'H'
+ ParentColor = False
+ end
+ object Label18: TLabel
+ Left = 8
+ Height = 15
+ Top = 224
+ Width = 7
+ Caption = 'K'
+ ParentColor = False
+ end
+ object Label17: TLabel
+ Left = 8
+ Height = 15
+ Top = 160
+ Width = 11
+ Caption = 'M'
+ ParentColor = False
+ end
+ object Label16: TLabel
+ Left = 7
+ Height = 15
+ Top = 192
+ Width = 7
+ Caption = 'Y'
+ ParentColor = False
+ end
+ object Label15: TLabel
+ Left = 8
+ Height = 15
+ Top = 128
+ Width = 8
+ Caption = 'C'
+ ParentColor = False
+ end
+ object Label14: TLabel
+ Left = 8
+ Height = 15
+ Top = 81
+ Width = 7
+ Caption = 'B'
+ ParentColor = False
+ end
+ object Label13: TLabel
+ Left = 8
+ Height = 15
+ Top = 44
+ Width = 8
+ Caption = 'G'
+ ParentColor = False
+ end
+ object Label12: TLabel
+ Left = 8
+ Height = 15
+ Top = 15
+ Width = 7
+ 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
+ SelectedColor = clWhite
+ end
+ object LColorPickerH: TLColorPicker
+ Left = 24
+ Height = 22
+ Top = 344
+ Width = 301
+ BevelInner = bvLowered
+ HintFormat = 'Luminance: %value'
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 6
+ OnChange = SLVPickerH_Change
+ Saturation = 255
+ Luminance = 127
+ SelectedColor = 254
+ end
+ object SColorPickerH: TSColorPicker
+ Left = 24
+ Height = 22
+ Top = 312
+ Width = 301
+ BevelOuter = bvLowered
+ HintFormat = 'Saturation: %value'
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 7
+ OnChange = SLVPickerH_Change
+ end
+ object HColorPickerH: THColorPicker
+ Left = 24
+ Height = 22
+ Top = 282
+ Width = 301
+ BevelOuter = bvLowered
+ HintFormat = 'Hue: %value'
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 8
+ OnChange = HPickerH_Change
+ end
+ object KColorPickerH: TKColorPicker
+ Left = 24
+ Height = 22
+ Top = 224
+ Width = 301
+ HintFormat = 'Black: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 9
+ OnChange = CMYKPickerH_Change
+ Cyan = 0
+ Black = 255
+ SelectedColor = clBlack
+ end
+ object MColorPickerH: TMColorPicker
+ Left = 24
+ Height = 22
+ Top = 160
+ Width = 301
+ HintFormat = 'Magenta: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 10
+ OnChange = CMYKPickerH_Change
+ SelectedColor = clFuchsia
+ end
+ object YColorPickerH: TYColorPicker
+ Left = 24
+ Height = 22
+ Top = 192
+ Width = 301
+ HintFormat = 'Yellow: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 11
+ OnChange = CMYKPickerH_Change
+ SelectedColor = clYellow
+ end
+ object CColorPickerH: TCColorPicker
+ Left = 24
+ Height = 22
+ Top = 128
+ Width = 301
+ HintFormat = 'Cyan: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 12
+ OnChange = CMYKPickerH_Change
+ SelectedColor = clAqua
+ end
+ object BColorPickerH: TBColorPicker
+ Left = 24
+ Height = 22
+ Top = 80
+ Width = 301
+ HintFormat = 'Blue: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 13
+ OnChange = RGBPickerH_Change
+ Red = 0
+ Green = 0
+ SelectedColor = clBlue
+ end
+ object GColorPickerH: TGColorPicker
+ Left = 24
+ Height = 22
+ Top = 48
+ Width = 301
+ HintFormat = 'Green: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 14
+ OnChange = RGBPickerH_Change
+ Red = 0
+ Blue = 0
+ SelectedColor = clLime
+ end
+ object RColorPickerH: TRColorPicker
+ Left = 24
+ Height = 22
+ Top = 16
+ Width = 301
+ HintFormat = 'Red: %value'
+ Layout = lyHorizontal
+ Anchors = [akTop, akLeft, akRight]
+ TabOrder = 15
+ OnChange = RGBPickerH_Change
+ Green = 0
+ Blue = 0
+ end
+ end
+ end
+ end
+end
diff --git a/components/mbColorLib/examples/trackbars/main.pas b/components/mbColorLib/examples/trackbars/main.pas
new file mode 100644
index 000000000..48ad4ab60
--- /dev/null
+++ b/components/mbColorLib/examples/trackbars/main.pas
@@ -0,0 +1,332 @@
+unit main;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
+ StdCtrls, ExtCtrls, BColorPicker, GColorPicker, RColorPicker, CColorPicker,
+ YColorPicker, MColorPicker, KColorPicker, HColorPicker, SColorPicker,
+ LColorPicker, VColorPicker, mbColorPreview;
+
+type
+
+ { TForm1 }
+
+ TForm1 = class(TForm)
+ BColorPickerV: TBColorPicker;
+ BColorPickerH: TBColorPicker;
+ Bevel1: TBevel;
+ Bevel2: TBevel;
+ Bevel3: TBevel;
+ Bevel4: TBevel;
+ CColorPickerH: TCColorPicker;
+ CColorPickerV: TCColorPicker;
+ GColorPickerV: TGColorPicker;
+ GColorPickerH: TGColorPicker;
+ HColorPickerH: THColorPicker;
+ HColorPickerV: THColorPicker;
+ KColorPickerH: TKColorPicker;
+ KColorPickerV: TKColorPicker;
+ Label1: TLabel;
+ lblLVv: TLabel;
+ Label12: TLabel;
+ Label13: TLabel;
+ Label14: TLabel;
+ Label15: TLabel;
+ Label16: TLabel;
+ Label17: TLabel;
+ Label18: TLabel;
+ Label19: TLabel;
+ Label2: TLabel;
+ Label20: TLabel;
+ lblLVh: TLabel;
+ Label3: TLabel;
+ Label4: TLabel;
+ Label5: TLabel;
+ Label6: TLabel;
+ Label7: TLabel;
+ Label8: TLabel;
+ Label9: TLabel;
+ LColorPickerH: TLColorPicker;
+ LColorPickerV: TLColorPicker;
+ CMYKh: TmbColorPreview;
+ HSLVh: TmbColorPreview;
+ Panel1: TPanel;
+ Panel2: TPanel;
+ RGBv: TmbColorPreview;
+ CMYKv: TmbColorPreview;
+ HSLVv: TmbColorPreview;
+ rbHSLv: TRadioButton;
+ rbHSVv: TRadioButton;
+ rbHSVh: TRadioButton;
+ rbHSLh: TRadioButton;
+ RGBh: TmbColorPreview;
+ MColorPickerH: TMColorPicker;
+ MColorPickerV: TMColorPicker;
+ PageControl1: TPageControl;
+ RColorPickerV: TRColorPicker;
+ RColorPickerH: TRColorPicker;
+ SColorPickerH: TSColorPicker;
+ SColorPickerV: TSColorPicker;
+ tabVertical: TTabSheet;
+ tabHorizontal: TTabSheet;
+ VColorPickerH: TVColorPicker;
+ VColorPickerV: TVColorPicker;
+ YColorPickerH: TYColorPicker;
+ YColorPickerV: TYColorPicker;
+ procedure CMYKPickerV_Change(Sender: TObject);
+ procedure CMYKPickerH_Change(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure HPickerH_Change(Sender: TObject);
+ procedure HPickerV_Change(Sender: TObject);
+ procedure rbHSLv_Change(Sender: TObject);
+ procedure rbHSLh_Change(Sender: TObject);
+ procedure RGBPickerH_Change(Sender: TObject);
+ procedure RGBPickerV_Change(Sender: TObject);
+ procedure SLVPickerH_Change(Sender: TObject);
+ procedure SLVPickerV_Change(Sender: TObject);
+ private
+
+ public
+
+ end;
+
+var
+ Form1: TForm1;
+
+implementation
+
+{$R *.lfm}
+
+uses
+ LCLType, LCLIntf, ScanLines, RGBCMYKUtils, RGBHSLUtils, RGBHSVUtils;
+
+{ TForm1 }
+
+procedure TForm1.CMYKPickerH_Change(Sender: TObject);
+var
+ c: TColor;
+begin
+ if (CColorPickerH = nil) or (YColorPickerH = nil) or (MColorPickerH = nil) or
+ (KColorPickerH = nil) or (CMYKh = nil) then
+ exit;
+ CMYKh.Color := CMYKToTColor(
+ CColorPickerH.Cyan,
+ MColorPickerH.Magenta,
+ YColorPickerH.Yellow,
+ KColorPickerH.Black
+ );
+
+ c := CMYKh.Color;
+ CMYKh.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
+ '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)
+ ]);
+end;
+
+procedure TForm1.CMYKPickerV_Change(Sender: TObject);
+var
+ c: TColor;
+begin
+ if (CColorPickerV = nil) or (YColorPickerV = nil) or (MColorPickerV = nil) or
+ (KColorPickerV = nil) or (CMYKv = nil) then
+ exit;
+ CMYKv.Color := CMYKToTColor(
+ CColorPickerV.Cyan,
+ MColorPickerV.Magenta,
+ YColorPickerV.Yellow,
+ KColorPickerV.Black
+ );
+
+ c := CMYKv.Color;
+ CMYKv.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
+ '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)
+ ]);
+end;
+
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+ 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);
+
+ RGBPickerV_Change(nil);
+ CMYKPickerV_Change(nil);
+ SLVPickerV_Change(nil);
+end;
+
+procedure TForm1.HPickerH_Change(Sender: TObject);
+begin
+ SLVPickerH_Change(nil);
+ SColorPickerH.Hue := HColorPickerH.Hue;
+ LColorPickerH.Hue := HColorPickerH.Hue;
+ VColorPickerH.Hue := HColorPickerH.Hue;
+end;
+
+procedure TForm1.HPickerV_Change(Sender: TObject);
+begin
+ SLVPickerV_Change(nil);
+ SColorPickerV.Hue := HColorPickerV.Hue;
+ LColorPickerV.Hue := HColorPickerV.Hue;
+ VColorPickerV.Hue := HColorPickerV.Hue;
+end;
+
+procedure TForm1.rbHSLv_Change(Sender: TObject);
+begin
+ if rbHSLv.Checked then
+ begin
+ lblLVv.Caption := 'L';
+ VColorPickerV.Visible := false;
+ LColorPickerV.Visible := true;
+ end;
+ if rbHSVv.Checked then
+ begin
+ lblLVv.Caption := 'V';
+ LColorPickerV.Visible := false;
+ VColorPickerV.Visible := true;
+ end;
+ HPickerV_Change(nil);
+end;
+
+procedure TForm1.rbHSLh_Change(Sender: TObject);
+begin
+ if rbHSLh.Checked then
+ begin
+ lblLVh.Caption := 'L';
+ VColorPickerH.Visible := false;
+ LColorPickerH.Visible := true;
+ end;
+ if rbHSVh.Checked then
+ begin
+ lblLVh.Caption := 'V';
+ lColorPickerH.Visible := false;
+ VColorPickerH.Visible := true;
+ end;
+ HPickerH_Change(nil);
+end;
+
+procedure TForm1.RGBPickerH_Change(Sender: TObject);
+var
+ c: TColor;
+begin
+ if (RColorPickerH = nil) or (GColorPickerH = nil) or (BColorPickerH = nil) or (RGBh = nil) then
+ exit;
+ RGBh.Color := RGBToColor(
+ RColorPickerH.Red,
+ GColorPickerH.Green,
+ BColorPickerH.Blue
+ );
+
+ c := RGBh.Color;
+ RGBh.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
+ '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)
+ ]);
+end;
+
+procedure TForm1.RGBPickerV_Change(Sender: TObject);
+var
+ c: TColor;
+begin
+ if (RColorPickerV = nil) or (GColorPickerV = nil) or (BColorPickerV = nil) or (RGBv = nil) then
+ exit;
+ RGBv.Color := RGBToColor(
+ RColorPickerV.Red,
+ GColorPickerV.Green,
+ BColorPickerV.Blue
+ );
+
+ c := RGBv.Color;
+ RGBv.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
+ '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)
+ ]);
+end;
+
+procedure TForm1.SLVPickerH_Change(Sender: TObject);
+var
+ triple: TRGBTriple;
+ c: TColor;
+begin
+ if (HSLVh = nil) or (HColorPickerH = nil) or (SColorPickerH = nil) then
+ exit;
+ if rbHSLh.Checked then begin
+ if (LColorPickerH = nil) then
+ exit;
+ triple := HSLToRGBTriple(HColorPickerH.Hue, SColorPickerH.Saturation, LColorPickerH.Luminance);
+ HSLVh.Color := RGBTripleToTColor(triple);
+// HSLVh.Color := HSLRangetoRGB(HColorPickerH.Hue, SColorPickerH.Saturation, LColorPickerH.Luminance);
+ end;
+ if rbHSVh.Checked then begin
+ if (VColorPickerH = nil) then
+ exit;
+ HSLVh.Color := HSVtoColor(HColorPickerH.Hue, SColorPickerH.Saturation, VColorPickerH.Value);
+ end;
+
+ c := HSLVh.Color;
+ HSLVh.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
+ '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)
+ ]);
+end;
+
+procedure TForm1.SLVPickerV_Change(Sender: TObject);
+var
+ triple: TRGBTriple;
+ c: TColor;
+begin
+ if (HSLVv = nil) or (HColorPickerV = nil) or (SColorPickerV = nil) then
+ exit;
+ if rbHSLv.Checked then begin
+ if (LColorPickerV = nil) then
+ exit;
+ triple := HSLToRGBTriple(HColorPickerV.Hue, SColorPickerV.Saturation, LColorPickerV.Luminance);
+ HSLVv.Color := RGBTripleToTColor(triple);
+ end;
+ if rbHSVv.Checked then begin
+ if (VColorPickerV = nil) then
+ exit;
+ HSLVv.Color := HSVtoColor(HColorPickerV.Hue, SColorPickerV.Saturation, VColorPickerV.Value);
+ end;
+
+ c := HSLVv.Color;
+ HSLVv.Hint := Format('Red: %d - Green: %d - Blue: %d'#13 +
+ '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)
+ ]);
+end;
+
+end.
+
diff --git a/components/mbColorLib/mbTrackBarPicker.pas b/components/mbColorLib/mbTrackBarPicker.pas
index ae3a41619..d2911c305 100644
--- a/components/mbColorLib/mbTrackBarPicker.pas
+++ b/components/mbColorLib/mbTrackBarPicker.pas
@@ -799,8 +799,8 @@ begin
end;
{ IMPORTANT: If pickers are created at designtime the layout must be set before
- defining the picker width and height because using a non-default layout will
- flip the bounding rectangle !!! }
+ defining the picker width and height because changing the layout will flip the
+ bounding rectangle !!! }
procedure TmbTrackBarPicker.SetLayout(Value: TTrackBarLayout);
begin
if FLayout <> Value then