mbColorLib: Use single registration file (instead of one for each component). Facilitate usage of Layout for trackbars. Reformat code.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5462 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-12-11 22:56:25 +00:00
parent 8b1a85037f
commit 1accce10f1
37 changed files with 2193 additions and 1878 deletions

View File

@ -47,22 +47,11 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R BAxisColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TBAxisColorPicker]);
end;
{TBAxisColorPicker} {TBAxisColorPicker}
constructor TBAxisColorPicker.Create(AOwner: TComponent); constructor TBAxisColorPicker.Create(AOwner: TComponent);

View File

@ -44,21 +44,12 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R BColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TBColorPicker]);
end;
{TBColorPicker} {TBColorPicker}
@ -67,17 +58,12 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
SetInitialBounds(0, 0, 22, 268);
{
Width := 22;
Height := 268;
}
Layout := lyVertical;
FRed := 122; FRed := 122;
FGreen := 122; FGreen := 122;
FBlue := 255; FBlue := 255;
FArrowPos := ArrowPosFromBlue(255); FArrowPos := ArrowPosFromBlue(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetBlue(255); SetBlue(255);
HintFormat := 'Blue: %value'; HintFormat := 'Blue: %value';
FManual := false; FManual := false;

View File

@ -43,22 +43,11 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R CColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TCColorPicker]);
end;
{TCColorPicker} {TCColorPicker}
constructor TCColorPicker.Create(AOwner: TComponent); constructor TCColorPicker.Create(AOwner: TComponent);
@ -66,16 +55,13 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
SetInitialBounds(0, 0, 22, 267);
//Width := 22;
//Height := 267;
Layout := lyVertical;
FCyan := 255; FCyan := 255;
FMagenta := 0; FMagenta := 0;
FYellow := 0; FYellow := 0;
FBlack := 0; FBlack := 0;
FArrowPos := ArrowPosFromCyan(255); FArrowPos := ArrowPosFromCyan(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetCyan(255); SetCyan(255);
HintFormat := 'Cyan: %value'; HintFormat := 'Cyan: %value';
FManual := false; FManual := false;

View File

@ -47,21 +47,12 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R CIEAColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TCIEAColorPicker]);
end;
{TCIEAColorPicker} {TCIEAColorPicker}

View File

@ -50,21 +50,12 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R CIEBColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TCIEBColorPicker]);
end;
{TCIEBColorPicker} {TCIEBColorPicker}

View File

@ -47,22 +47,12 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R CIELColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TCIELColorPicker]);
end;
{TCIELColorPicker} {TCIELColorPicker}
constructor TCIELColorPicker.Create(AOwner: TComponent); constructor TCIELColorPicker.Create(AOwner: TComponent);

View File

@ -46,6 +46,7 @@ object Form1: TForm1
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
TabIndex = 0 TabIndex = 0
TabOrder = 0 TabOrder = 0
OnMouseMove = PageControl1MouseMove
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'HSLColorPicker' Caption = 'HSLColorPicker'
ClientHeight = 303 ClientHeight = 303
@ -55,7 +56,7 @@ object Form1: TForm1
Height = 287 Height = 287
Top = 8 Top = 8
Width = 377 Width = 377
SelectedColor = 494343 SelectedColor = 424966
HSPickerHintFormat = 'H: %h S: %s'#13'Hex: %hex' HSPickerHintFormat = 'H: %h S: %s'#13'Hex: %hex'
LPickerHintFormat = 'Luminance: %l' LPickerHintFormat = 'Luminance: %l'
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
@ -217,7 +218,7 @@ object Form1: TForm1
Left = 0 Left = 0
Height = 234 Height = 234
Top = 0 Top = 0
Width = 360 Width = 364
Align = alTop Align = alTop
Colors.Strings = ( Colors.Strings = (
'clBlack' 'clBlack'
@ -585,14 +586,14 @@ object Form1: TForm1
end end
object TabSheet5: TTabSheet object TabSheet5: TTabSheet
Caption = 'HSVColorPicker' Caption = 'HSVColorPicker'
ClientHeight = 299 ClientHeight = 303
ClientWidth = 389 ClientWidth = 391
ImageIndex = 4 ImageIndex = 4
object HSVColorPicker1: THSVColorPicker object HSVColorPicker1: THSVColorPicker
Left = 24 Left = 24
Height = 285 Height = 289
Top = 6 Top = 6
Width = 297 Width = 328
HintFormat = 'H: %h S: %s V: %v'#13'Hex: %hex' HintFormat = 'H: %h S: %s V: %v'#13'Hex: %hex'
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
TabOrder = 0 TabOrder = 0
@ -600,11 +601,12 @@ object Form1: TForm1
OnChange = HSVColorPicker1Change OnChange = HSVColorPicker1Change
end end
object VColorPicker2: TVColorPicker object VColorPicker2: TVColorPicker
Left = 332 Left = 360
Height = 293 Height = 302
Top = 2 Top = 2
Width = 22 Width = 22
HintFormat = 'Value: %v' HintFormat = 'Value: %v'
Layout = lyVertical
NewArrowStyle = True NewArrowStyle = True
Anchors = [akTop, akRight, akBottom] Anchors = [akTop, akRight, akBottom]
TabOrder = 1 TabOrder = 1
@ -614,14 +616,14 @@ object Form1: TForm1
end end
object TabSheet6: TTabSheet object TabSheet6: TTabSheet
Caption = 'SLHColorPicker' Caption = 'SLHColorPicker'
ClientHeight = 299 ClientHeight = 303
ClientWidth = 389 ClientWidth = 391
ImageIndex = 5 ImageIndex = 5
object SLHColorPicker1: TSLHColorPicker object SLHColorPicker1: TSLHColorPicker
Left = 5 Left = 5
Height = 287 Height = 291
Top = 6 Top = 6
Width = 379 Width = 381
HPickerHintFormat = 'Hue: %h' HPickerHintFormat = 'Hue: %h'
SLPickerHintFormat = 'S: %s L: %l'#13'Hex: %hex' SLPickerHintFormat = 'S: %s L: %l'#13'Hex: %hex'
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
@ -701,7 +703,6 @@ object Form1: TForm1
Top = 192 Top = 192
Width = 343 Width = 343
HintFormat = 'Luminance: %l' HintFormat = 'Luminance: %l'
Layout = lyHorizontal
SelectionIndicator = siRect SelectionIndicator = siRect
Anchors = [akLeft, akRight, akBottom] Anchors = [akLeft, akRight, akBottom]
TabOrder = 2 TabOrder = 2
@ -715,7 +716,6 @@ object Form1: TForm1
Top = 160 Top = 160
Width = 343 Width = 343
HintFormat = 'Value: %v' HintFormat = 'Value: %v'
Layout = lyHorizontal
ArrowPlacement = spBefore ArrowPlacement = spBefore
NewArrowStyle = True NewArrowStyle = True
SelectionIndicator = siRect SelectionIndicator = siRect

View File

@ -103,6 +103,8 @@ type
Memo1: TMemo; Memo1: TMemo;
Label9: TLabel; Label9: TLabel;
CheckBox4: TCheckBox; CheckBox4: TCheckBox;
procedure PageControl1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure tb1Change(Sender: TObject); procedure tb1Change(Sender: TObject);
procedure tb2Change(Sender: TObject); procedure tb2Change(Sender: TObject);
procedure HSLColorPicker1Change(Sender: TObject); procedure HSLColorPicker1Change(Sender: TObject);
@ -192,7 +194,7 @@ end;
procedure TForm1.HexaColorPicker1MouseMove(Sender: TObject; procedure TForm1.HexaColorPicker1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
begin begin
uc.color := hexacolorpicker1.ColorUnderCursor; uc.color := hexacolorpicker1.ColorUnderCursor;
end; end;
procedure TForm1.Button1Click(Sender: TObject); procedure TForm1.Button1Click(Sender: TObject);
@ -224,7 +226,7 @@ end;
procedure TForm1.HSLRingPicker1MouseMove(Sender: TObject; procedure TForm1.HSLRingPicker1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
begin begin
uc.color := HSLRingPicker1.ColorUnderCursor; uc.color := HSLRingPicker1.ColorUnderCursor;
end; end;
procedure TForm1.HSVColorPicker1Change(Sender: TObject); procedure TForm1.HSVColorPicker1Change(Sender: TObject);
@ -248,7 +250,7 @@ end;
procedure TForm1.SLHColorPicker1MouseMove(Sender: TObject; procedure TForm1.SLHColorPicker1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
begin begin
uc.color := SLHColorPicker1.ColorUnderCursor; uc.color := SLHColorPicker1.ColorUnderCursor;
end; end;
procedure TForm1.mbDeskPickerButton1SelColorChange(Sender: TObject); procedure TForm1.mbDeskPickerButton1SelColorChange(Sender: TObject);
@ -257,32 +259,38 @@ sc.color := mbDeskPickerButton1.SelectedColor;
uc.color := mbDeskPickerButton1.SelectedColor; uc.color := mbDeskPickerButton1.SelectedColor;
end; end;
procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
uc.color := HSLColorpicker1.ColorUnderCursor;
end;
procedure TForm1.Button3Click(Sender: TObject); procedure TForm1.Button3Click(Sender: TObject);
begin begin
if mbOfficeColorDialog1.Execute then if mbOfficeColorDialog1.Execute then
sc.color := mbOfficeColorDialog1.SelectedColor; sc.color := mbOfficeColorDialog1.SelectedColor;
end; end;
procedure TForm1.HSColorPicker1Change(Sender: TObject); procedure TForm1.HSColorPicker1Change(Sender: TObject);
begin begin
sc.color := HSColorPicker1.SelectedColor; sc.color := HSColorPicker1.SelectedColor;
end; end;
procedure TForm1.HSColorPicker1MouseMove(Sender: TObject; procedure TForm1.HSColorPicker1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
begin begin
uc.color := HSColorpicker1.ColorUnderCursor; uc.color := HSColorpicker1.ColorUnderCursor;
end; end;
procedure TForm1.SLColorPicker1Change(Sender: TObject); procedure TForm1.SLColorPicker1Change(Sender: TObject);
begin begin
sc.color := SLColorPicker1.SelectedColor; sc.color := SLColorPicker1.SelectedColor;
end; end;
procedure TForm1.SLColorPicker1MouseMove(Sender: TObject; procedure TForm1.SLColorPicker1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); Shift: TShiftState; X, Y: Integer);
begin begin
uc.color := slcolorpicker1.ColorUnderCursor; uc.color := slcolorpicker1.ColorUnderCursor;
end; end;
procedure TForm1.HRingPicker1Change(Sender: TObject); procedure TForm1.HRingPicker1Change(Sender: TObject);

View File

@ -47,22 +47,11 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R GAxisColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TGAxisColorPicker]);
end;
{TGAxisColorPicker} {TGAxisColorPicker}
constructor TGAxisColorPicker.Create(AOwner: TComponent); constructor TGAxisColorPicker.Create(AOwner: TComponent);

View File

@ -39,22 +39,11 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R GColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TGColorPicker]);
end;
{TGColorPicker} {TGColorPicker}
constructor TGColorPicker.Create(AOwner: TComponent); constructor TGColorPicker.Create(AOwner: TComponent);
@ -62,15 +51,12 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
SetInitialBounds(0, 0, 22, 268);
//Width := 22;
//Height := 268;
Layout := lyVertical;
FRed := 122; FRed := 122;
FGreen := 255; FGreen := 255;
FBlue := 122; FBlue := 122;
FArrowPos := ArrowPosFromGreen(255); FArrowPos := ArrowPosFromGreen(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetGreen(255); SetGreen(255);
HintFormat := 'Green: %value'; HintFormat := 'Green: %value';
FManual := false; FManual := false;

View File

@ -40,22 +40,12 @@ type
property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed; property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R HColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [THColorPicker]);
end;
{THColorPicker} {THColorPicker}
constructor THColorPicker.Create(AOwner: TComponent); constructor THColorPicker.Create(AOwner: TComponent);
@ -63,12 +53,6 @@ begin
inherited; inherited;
FGradientWidth := 360; FGradientWidth := 360;
FGradientHeight := 12; FGradientHeight := 12;
{$IFDEF DELPHI}
Width := 267;
Height := 22;
{$ELSE}
SetInitialBounds(0, 0, 267, 22);
{$ENDIF}
FSat := 255; FSat := 255;
FVal := 255; FVal := 255;
FArrowPos := ArrowPosFromHue(0); FArrowPos := ArrowPosFromHue(0);

View File

@ -61,23 +61,12 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R HRingPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [THRingPicker]);
end;
{ THRingPicker } { THRingPicker }
constructor THRingPicker.Create(AOwner: TComponent); constructor THRingPicker.Create(AOwner: TComponent);

View File

@ -51,22 +51,11 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R HSColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [THSColorPicker]);
end;
{THSColorPicker} {THSColorPicker}
constructor THSColorPicker.Create(AOwner: TComponent); constructor THSColorPicker.Create(AOwner: TComponent);

View File

@ -9,114 +9,103 @@ interface
{$I mxs.inc} {$I mxs.inc}
uses uses
{$IFDEF FPC} {$IFDEF FPC}
LCLIntf, LCLType, LMessages, LCLIntf, LCLType, LMessages,
{$ELSE} {$ELSE}
Windows, Messages, Windows, Messages,
{$ENDIF} {$ENDIF}
SysUtils, Classes, Controls, Graphics, Forms, Menus, SysUtils, Classes, Controls, Graphics, Forms, Menus,
{$IFDEF DELPHI_7_UP} Themes, {$ENDIF} {$IFDEF DELPHI_7_UP} Themes, {$ENDIF}
RGBHSLUtils, HSColorPicker, LColorPicker, HTMLColors, mbBasicPicker; RGBHSLUtils, HSColorPicker, LColorPicker, HTMLColors, mbBasicPicker;
type type
THSLColorPicker = class(TmbBasicPicker) THSLColorPicker = class(TmbBasicPicker)
private private
FOnChange: TNotifyEvent; FOnChange: TNotifyEvent;
FHSPicker: THSColorPicker; FHSPicker: THSColorPicker;
FLPicker: TLColorPicker; FLPicker: TLColorPicker;
FSelectedColor: TColor; FSelectedColor: TColor;
FHValue, FSValue, FLValue: integer; FHValue, FSValue, FLValue: integer;
FRValue, FGValue, FBValue: integer; FRValue, FGValue, FBValue: integer;
FHSHint, FLHint: string; FHSHint, FLHint: string;
FLMenu, FHSMenu: TPopupMenu; FLMenu, FHSMenu: TPopupMenu;
FLumIncrement: integer; FLumIncrement: integer;
FHSCursor, FLCursor: TCursor; FHSCursor, FLCursor: TCursor;
PBack: TBitmap; PBack: TBitmap;
function GetManual: boolean;
function GetManual: boolean; procedure SetLumIncrement(i: integer);
procedure SetLumIncrement(i: integer); procedure SelectColor(c: TColor);
procedure SelectColor(c: TColor); procedure SetH(v: integer);
procedure SetH(v: integer); procedure SetS(v: integer);
procedure SetS(v: integer); procedure SetL(v: integer);
procedure SetL(v: integer); procedure SetR(v: integer);
procedure SetR(v: integer); procedure SetG(v: integer);
procedure SetG(v: integer); procedure SetB(v: integer);
procedure SetB(v: integer); procedure SetHSHint(h: string);
procedure SetHSHint(h: string); procedure SetLHint(h: string);
procedure SetLHint(h: string); procedure SetLMenu(m: TPopupMenu);
procedure SetLMenu(m: TPopupMenu); procedure SetHSMenu(m: TPopupMenu);
procedure SetHSMenu(m: TPopupMenu); procedure SetHSCursor(c: TCursor);
procedure SetHSCursor(c: TCursor); procedure SetLCursor(c: TCursor);
procedure SetLCursor(c: TCursor); procedure SetSelectedColor(Value: TColor);
procedure SetSelectedColor(Value: TColor); protected
protected procedure CreateWnd; override;
procedure CreateWnd; override; procedure Resize; override;
procedure Resize; override; procedure Paint; override;
procedure Paint; override; procedure PaintParentBack; override;
procedure PaintParentBack; override; procedure WMSetFocus(var Message: {$IFDEF FPC}TLMSetFocus{$ELSE}TWMSetFocus{$ENDIF});
procedure WMSetFocus(var Message: {$IFDEF FPC}TLMSetFocus{$ELSE}TWMSetFocus{$ENDIF}); message {$IFDEF FPC}LM_SETFOCUS{$ELSE}WM_SETFOCUS{$ENDIF};
message {$IFDEF FPC}LM_SETFOCUS{$ELSE}WM_SETFOCUS{$ENDIF}; procedure DoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure DoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure HSPickerChange(Sender: TObject);
procedure HSPickerChange(Sender: TObject); procedure LPickerChange(Sender: TObject);
procedure LPickerChange(Sender: TObject); procedure DoChange;
procedure DoChange; public
public constructor Create(AOwner: TComponent); override;
constructor Create(AOwner: TComponent); override; destructor Destroy; override;
destructor Destroy; override; function GetColorUnderCursor: TColor;
function GetHexColorUnderCursor: string;
function GetColorUnderCursor: TColor; function GetSelectedHexColor: string;
function GetHexColorUnderCursor: string; property ColorUnderCursor: TColor read GetColorUnderCursor;
function GetSelectedHexColor: string; property HValue: integer read FHValue write SetH default 0;
property ColorUnderCursor: TColor read GetColorUnderCursor; property SValue: integer read FSValue write SetS default 240;
property HValue: integer read FHValue write SetH default 0; property LValue: integer read FLValue write SetL default 120;
property SValue: integer read FSValue write SetS default 240; property RValue: integer read FRValue write SetR default 255;
property LValue: integer read FLValue write SetL default 120; property GValue: integer read FGValue write SetG default 0;
property RValue: integer read FRValue write SetR default 255; property BValue: integer read FBValue write SetB default 0;
property GValue: integer read FGValue write SetG default 0; property Manual: boolean read GetManual;
property BValue: integer read FBValue write SetB default 0; published
property Manual: boolean read GetManual; property LuminanceIncrement: integer read FLumIncrement write SetLumIncrement default 1;
published property SelectedColor: TColor read FSelectedColor write SetSelectedColor default clRed;
property LuminanceIncrement: integer read FLumIncrement write SetLumIncrement default 1; property HSPickerPopupMenu: TPopupMenu read FHSMenu write SetHSMenu;
property SelectedColor: TColor read FSelectedColor write SetSelectedColor default clRed; property LPickerPopupMenu: TPopupMenu read FLMenu write SetLMenu;
property HSPickerPopupMenu: TPopupMenu read FHSMenu write SetHSMenu; property HSPickerHintFormat: string read FHSHint write SetHSHint;
property LPickerPopupMenu: TPopupMenu read FLMenu write SetLMenu; property LPickerHintFormat: string read FLHint write SetLHint;
property HSPickerHintFormat: string read FHSHint write SetHSHint; property HSPickerCursor: TCursor read FHSCursor write SetHSCursor default crDefault;
property LPickerHintFormat: string read FLHint write SetLHint; property LPickerCursor: TCursor read FLCursor write SetLCursor default crDefault;
property HSPickerCursor: TCursor read FHSCursor write SetHSCursor default crDefault; property TabStop default true;
property LPickerCursor: TCursor read FLCursor write SetLCursor default crDefault; property ShowHint;
property TabStop default true; property ParentShowHint;
property ShowHint; property Anchors;
property ParentShowHint; property Align;
property Anchors; property Visible;
property Align; property Enabled;
property Visible; property TabOrder;
property Enabled; property Color;
property TabOrder; property ParentColor default true;
property Color; {$IFDEF DELPHI_7_UP}{$IFDEF DELPHI}
property ParentColor default true; property ParentBackground default true;
{$IFDEF DELPHI_7_UP}{$IFDEF DELPHI} {$ENDIF}{$ENDIF}
property ParentBackground default true; property OnChange: TNotifyEvent read FOnChange write FOnChange;
{$ENDIF}{$ENDIF} property OnMouseMove;
end;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnMouseMove;
end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R HSLColorPicker.dcr}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [THSLColorPicker]);
end;
{THSLColorPicker} {THSLColorPicker}
uses
mbTrackbarPicker;
constructor THSLColorPicker.Create(AOwner: TComponent); constructor THSLColorPicker.Create(AOwner: TComponent);
begin begin
inherited; inherited;
@ -155,6 +144,7 @@ begin
InsertControl(FLPicker); InsertControl(FLPicker);
with FLPicker do with FLPicker do
begin begin
Layout := lyVertical;
SetInitialBounds(184, 0, 25, 146); SetInitialBounds(184, 0, 25, 146);
{ {
Height := 146; Height := 146;
@ -178,169 +168,169 @@ end;
destructor THSLColorPicker.Destroy; destructor THSLColorPicker.Destroy;
begin begin
PBack.Free; PBack.Free;
FHSPicker.Free; FHSPicker.Free;
FLPicker.Free; FLPicker.Free;
inherited Destroy; inherited Destroy;
end; end;
procedure THSLColorPicker.HSPickerChange(Sender: TObject); procedure THSLColorPicker.HSPickerChange(Sender: TObject);
begin begin
FLPicker.Hue := FHSPicker.HueValue; FLPicker.Hue := FHSPicker.HueValue;
FLPicker.Saturation := FHSPicker.SaturationValue; FLPicker.Saturation := FHSPicker.SaturationValue;
DoChange; DoChange;
end; end;
procedure THSLColorPicker.LPickerChange(Sender: TObject); procedure THSLColorPicker.LPickerChange(Sender: TObject);
begin begin
FHSPicker.Lum := FLPicker.Luminance; FHSPicker.Lum := FLPicker.Luminance;
FSelectedColor := FLPicker.SelectedColor; FSelectedColor := FLPicker.SelectedColor;
DoChange; DoChange;
end; end;
procedure THSLColorPicker.DoChange; procedure THSLColorPicker.DoChange;
begin begin
FHValue := FLPicker.Hue; FHValue := FLPicker.Hue;
FSValue := FLPicker.Saturation; FSValue := FLPicker.Saturation;
FLValue := FLPicker.Luminance; FLValue := FLPicker.Luminance;
FRValue := GetRValue(FLPicker.SelectedColor); FRValue := GetRValue(FLPicker.SelectedColor);
FGValue := GetGValue(FLPicker.SelectedColor); FGValue := GetGValue(FLPicker.SelectedColor);
FBValue := GetBValue(FLPicker.SelectedColor); FBValue := GetBValue(FLPicker.SelectedColor);
if Assigned(FOnChange) then if Assigned(FOnChange) then
FOnChange(Self); FOnChange(Self);
end; end;
procedure THSLColorPicker.SelectColor(c: TColor); procedure THSLColorPicker.SelectColor(c: TColor);
begin begin
FSelectedColor := c; FSelectedColor := c;
FHSPicker.SelectedColor := c; FHSPicker.SelectedColor := c;
FLPicker.SelectedColor := c; FLPicker.SelectedColor := c;
end; end;
procedure THSLColorPicker.SetH(v: integer); procedure THSLColorPicker.SetH(v: integer);
begin begin
FHValue := v; FHValue := v;
FHSPicker.HueValue := v; FHSPicker.HueValue := v;
FLPicker.Hue := v; FLPicker.Hue := v;
end; end;
procedure THSLColorPicker.SetS(v: integer); procedure THSLColorPicker.SetS(v: integer);
begin begin
FSValue := v; FSValue := v;
FHSPicker.SaturationValue := v; FHSPicker.SaturationValue := v;
FLPicker.Saturation := v; FLPicker.Saturation := v;
end; end;
procedure THSLColorPicker.SetL(v: integer); procedure THSLColorPicker.SetL(v: integer);
begin begin
FLValue := v; FLValue := v;
FLPicker.Luminance := v; FLPicker.Luminance := v;
end; end;
procedure THSLColorPicker.SetR(v: integer); procedure THSLColorPicker.SetR(v: integer);
begin begin
FRValue := v; FRValue := v;
SetSelectedColor(RGB(FRValue, FGValue, FBValue)); SetSelectedColor(RGB(FRValue, FGValue, FBValue));
end; end;
procedure THSLColorPicker.SetG(v: integer); procedure THSLColorPicker.SetG(v: integer);
begin begin
FGValue := v; FGValue := v;
SetSelectedColor(RGB(FRValue, FGValue, FBValue)); SetSelectedColor(RGB(FRValue, FGValue, FBValue));
end; end;
procedure THSLColorPicker.SetB(v: integer); procedure THSLColorPicker.SetB(v: integer);
begin begin
FBValue := v; FBValue := v;
SetSelectedColor(RGB(FRValue, FGValue, FBValue)); SetSelectedColor(RGB(FRValue, FGValue, FBValue));
end; end;
function THSLColorPicker.GetSelectedHexColor: string; function THSLColorPicker.GetSelectedHexColor: string;
begin begin
Result := ColorToHex(FSelectedColor); Result := ColorToHex(FSelectedColor);
end; end;
procedure THSLColorPicker.SetHSHint(h: string); procedure THSLColorPicker.SetHSHint(h: string);
begin begin
FHSHint := h; FHSHint := h;
FHSPicker.HintFormat := h; FHSPicker.HintFormat := h;
end; end;
procedure THSLColorPicker.SetLHint(h: string); procedure THSLColorPicker.SetLHint(h: string);
begin begin
FLHint := h; FLHint := h;
FLPicker.HintFormat := h; FLPicker.HintFormat := h;
end; end;
procedure THSLColorPicker.SetLMenu(m: TPopupMenu); procedure THSLColorPicker.SetLMenu(m: TPopupMenu);
begin begin
FLMenu := m; FLMenu := m;
FLPicker.PopupMenu := m; FLPicker.PopupMenu := m;
end; end;
procedure THSLColorPicker.SetHSMenu(m: TPopupMenu); procedure THSLColorPicker.SetHSMenu(m: TPopupMenu);
begin begin
FHSMenu := m; FHSMenu := m;
FHSPicker.PopupMenu := m; FHSPicker.PopupMenu := m;
end; end;
procedure THSLColorPicker.SetLumIncrement(i: integer); procedure THSLColorPicker.SetLumIncrement(i: integer);
begin begin
FLumIncrement := i; FLumIncrement := i;
FLPicker.Increment := i; FLPicker.Increment := i;
end; end;
procedure THSLColorPicker.DoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure THSLColorPicker.DoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin begin
if Assigned(OnMouseMove) then if Assigned(OnMouseMove) then
OnMouseMove(Self, Shift, x, y); OnMouseMove(Self, Shift, x, y);
inherited; inherited;
end; end;
function THSLColorPicker.GetColorUnderCursor: TColor; function THSLColorPicker.GetColorUnderCursor: TColor;
begin begin
Result := FHSPicker.GetColorUnderCursor; Result := FHSPicker.GetColorUnderCursor;
end; end;
function THSLColorPicker.GetHexColorUnderCursor: string; function THSLColorPicker.GetHexColorUnderCursor: string;
begin begin
Result := FHSPicker.GetHexColorUnderCursor; Result := FHSPicker.GetHexColorUnderCursor;
end; end;
procedure THSLColorPicker.SetHSCursor(c: TCursor); procedure THSLColorPicker.SetHSCursor(c: TCursor);
begin begin
FHSCursor := c; FHSCursor := c;
FHSPicker.Cursor := c; FHSPicker.Cursor := c;
end; end;
procedure THSLColorPicker.SetLCursor(c: TCursor); procedure THSLColorPicker.SetLCursor(c: TCursor);
begin begin
FLCursor := c; FLCursor := c;
FLPicker.Cursor := c; FLPicker.Cursor := c;
end; end;
procedure THSLColorPicker.WMSetFocus( procedure THSLColorPicker.WMSetFocus(
var Message: {$IFDEF FPC}TLMSetFocus{$ELSE}TWMSetFocus{$ENDIF} ); var Message: {$IFDEF FPC}TLMSetFocus{$ELSE}TWMSetFocus{$ENDIF} );
begin begin
FHSPicker.SetFocus; FHSPicker.SetFocus;
Message.Result := 1; Message.Result := 1;
end; end;
function THSLColorPicker.GetManual:boolean; function THSLColorPicker.GetManual:boolean;
begin begin
Result := FHSPicker.Manual or FLPicker.Manual; Result := FHSPicker.Manual or FLPicker.Manual;
end; end;
procedure THSLColorPicker.PaintParentBack; procedure THSLColorPicker.PaintParentBack;
begin begin
if PBack = nil then if PBack = nil then
begin begin
PBack := TBitmap.Create; PBack := TBitmap.Create;
PBack.PixelFormat := pf32bit; PBack.PixelFormat := pf32bit;
end; end;
PBack.Width := Width; PBack.Width := Width;
PBack.Height := Height; PBack.Height := Height;
PaintParentBack(PBack); PaintParentBack(PBack);
end; end;
procedure THSLColorPicker.Resize; procedure THSLColorPicker.Resize;
@ -360,23 +350,23 @@ end;
procedure THSLColorPicker.CreateWnd; procedure THSLColorPicker.CreateWnd;
begin begin
inherited; inherited;
PaintParentBack; PaintParentBack;
end; end;
procedure THSLColorPicker.Paint; procedure THSLColorPicker.Paint;
begin begin
PaintParentBack; PaintParentBack;
Canvas.Draw(0, 0, PBack); Canvas.Draw(0, 0, PBack);
end; end;
procedure THSLColorPicker.SetSelectedColor(Value: TColor); procedure THSLColorPicker.SetSelectedColor(Value: TColor);
begin begin
if FSelectedColor <> Value then if FSelectedColor <> Value then
begin begin
SelectColor(Value); SelectColor(Value);
//FLPicker.Hue := FHSPicker.HueValue; //FLPicker.Hue := FHSPicker.HueValue;
//FLPicker.Saturation := FHSPicker.SaturationValue; //FLPicker.Saturation := FHSPicker.SaturationValue;
end; end;
end; end;

View File

@ -9,110 +9,96 @@ interface
{$I mxs.inc} {$I mxs.inc}
uses uses
{$IFDEF FPC} {$IFDEF FPC}
LCLIntf, LCLType, LMessages, LCLIntf, LCLType, LMessages,
{$ELSE} {$ELSE}
Windows, Messages, Windows, Messages,
{$ENDIF} {$ENDIF}
SysUtils, Classes, Controls, Graphics, Forms, Menus, Math, SysUtils, Classes, Controls, Graphics, Forms, Menus, Math,
{$IFDEF DELPHI_7_UP}Themes,{$ENDIF} {$IFDEF DELPHI_7_UP}Themes,{$ENDIF}
RGBHSLUtils, HRingPicker, SLColorPicker, HTMLColors, mbBasicPicker; RGBHSLUtils, HRingPicker, SLColorPicker, HTMLColors, mbBasicPicker;
type type
THSLRingPicker = class(TmbBasicPicker) THSLRingPicker = class(TmbBasicPicker)
private private
FOnChange: TNotifyEvent; FOnChange: TNotifyEvent;
FRingPicker: THRingPicker; FRingPicker: THRingPicker;
FSLPicker: TSLColorPicker; FSLPicker: TSLColorPicker;
FSelectedColor: TColor; FSelectedColor: TColor;
FHValue, FSValue, FLValue: integer; FHValue, FSValue, FLValue: integer;
FRValue, FGValue, FBValue: integer; FRValue, FGValue, FBValue: integer;
FRingHint, FSLHint: string; FRingHint, FSLHint: string;
FSLMenu, FRingMenu: TPopupMenu; FSLMenu, FRingMenu: TPopupMenu;
FSLCursor, FRingCursor: TCursor; FSLCursor, FRingCursor: TCursor;
PBack: TBitmap; PBack: TBitmap;
function GetManual: boolean;
function GetManual: boolean; procedure SelectColor(c: TColor);
procedure SelectColor(c: TColor); procedure SetH(v: integer);
procedure SetH(v: integer); procedure SetS(v: integer);
procedure SetS(v: integer); procedure SetL(v: integer);
procedure SetL(v: integer); procedure SetR(v: integer);
procedure SetR(v: integer); procedure SetG(v: integer);
procedure SetG(v: integer); procedure SetB(v: integer);
procedure SetB(v: integer); procedure SetRingHint(h: string);
procedure SetRingHint(h: string); procedure SetSLHint(h: string);
procedure SetSLHint(h: string); procedure SetSLMenu(m: TPopupMenu);
procedure SetSLMenu(m: TPopupMenu); procedure SetRingMenu(m: TPopupMenu);
procedure SetRingMenu(m: TPopupMenu); procedure SetRingCursor(c: TCursor);
procedure SetRingCursor(c: TCursor); procedure SetSLCursor(c: TCursor);
procedure SetSLCursor(c: TCursor); protected
protected procedure CreateWnd; override;
procedure CreateWnd; override; procedure Paint; override;
procedure Paint; override; procedure DoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure DoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure RingPickerChange(Sender: TObject);
procedure RingPickerChange(Sender: TObject); procedure SLPickerChange(Sender: TObject);
procedure SLPickerChange(Sender: TObject); procedure DoChange;
procedure DoChange; procedure Resize; override;
procedure Resize; override; {$IFDEF DELPHI}
{$IFDEF DELPHI} procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS; {$ELSE}
{$ELSE} procedure WMSetFocus(var Message: TLMSetFocus); message LM_SETFOCUS;
procedure WMSetFocus(var Message: TLMSetFocus); message LM_SETFOCUS; {$ENDIF}
{$ENDIF} public
public constructor Create(AOwner: TComponent); override;
constructor Create(AOwner: TComponent); override; destructor Destroy; override;
destructor Destroy; override; function GetColorUnderCursor: TColor;
function GetHexColorUnderCursor: string;
function GetColorUnderCursor: TColor; function GetSelectedHexColor: string;
function GetHexColorUnderCursor: string; property ColorUnderCursor: TColor read GetColorUnderCursor;
function GetSelectedHexColor: string; property HValue: integer read FHValue write SetH default 0;
property ColorUnderCursor: TColor read GetColorUnderCursor; property SValue: integer read FSValue write SetS default 240;
property HValue: integer read FHValue write SetH default 0; property LValue: integer read FLValue write SetL default 120;
property SValue: integer read FSValue write SetS default 240; property RValue: integer read FRValue write SetR default 255;
property LValue: integer read FLValue write SetL default 120; property GValue: integer read FGValue write SetG default 0;
property RValue: integer read FRValue write SetR default 255; property BValue: integer read FBValue write SetB default 0;
property GValue: integer read FGValue write SetG default 0; property Manual: boolean read GetManual;
property BValue: integer read FBValue write SetB default 0; published
property Manual: boolean read GetManual; property SelectedColor: TColor read FSelectedColor write SelectColor default clRed;
published property RingPickerPopupMenu: TPopupMenu read FRingMenu write SetRingMenu;
property SelectedColor: TColor read FSelectedColor write SelectColor default clRed; property SLPickerPopupMenu: TPopupMenu read FSLMenu write SetSLMenu;
property RingPickerPopupMenu: TPopupMenu read FRingMenu write SetRingMenu; property RingPickerHintFormat: string read FRingHint write SetRingHint;
property SLPickerPopupMenu: TPopupMenu read FSLMenu write SetSLMenu; property SLPickerHintFormat: string read FSLHint write SetSLHint;
property RingPickerHintFormat: string read FRingHint write SetRingHint; property RingPickerCursor: TCursor read FRingCursor write SetRingCursor default crDefault;
property SLPickerHintFormat: string read FSLHint write SetSLHint; property SLPickerCursor: TCursor read FSLCursor write SetSLCursor default crDefault;
property RingPickerCursor: TCursor read FRingCursor write SetRingCursor default crDefault; property TabStop default true;
property SLPickerCursor: TCursor read FSLCursor write SetSLCursor default crDefault; property ShowHint;
property TabStop default true; property ParentShowHint;
property ShowHint; property Anchors;
property ParentShowHint; property Align;
property Anchors; property Visible;
property Align; property Enabled;
property Visible; property TabOrder;
property Enabled; property Color;
property TabOrder; property ParentColor default true;
property Color; {$IFDEF DELPHI_7_UP} {$IFDEF DELPHI}
property ParentColor default true; property ParentBackground default true;
{$IFDEF DELPHI_7_UP} {$IFDEF DELPHI} {$ENDIF} {$ENDIF}
property ParentBackground default true; property OnChange: TNotifyEvent read FOnChange write FOnChange;
{$ENDIF} {$ENDIF} property OnMouseMove;
end;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnMouseMove;
end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R HSLRingPicker.dcr}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [THSLRingPicker]);
end;
{THSLRingPicker} {THSLRingPicker}
constructor THSLRingPicker.Create(AOwner: TComponent); constructor THSLRingPicker.Create(AOwner: TComponent);
@ -192,8 +178,8 @@ end;
procedure THSLRingPicker.Resize; procedure THSLRingPicker.Resize;
var var
circ: TPoint; circ: TPoint;
ctr: double; ctr: double;
begin begin
inherited; inherited;
if (FRingPicker = nil) or (FSLPicker = nil) then if (FRingPicker = nil) or (FSLPicker = nil) then

View File

@ -71,23 +71,11 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R HSVColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [THSVColorPicker]);
end;
{ THSVColorPicker } { THSVColorPicker }
constructor THSVColorPicker.Create(AOwner: TComponent); constructor THSVColorPicker.Create(AOwner: TComponent);

File diff suppressed because it is too large Load Diff

View File

@ -43,22 +43,11 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R KColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TKColorPicker]);
end;
{TKColorPicker} {TKColorPicker}
constructor TKColorPicker.Create(AOwner: TComponent); constructor TKColorPicker.Create(AOwner: TComponent);
@ -66,16 +55,13 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
SetInitialBounds(0, 0, 22, 267);
//Width := 22;
//Height := 267;
Layout := lyVertical;
FCyan := 0; FCyan := 0;
FMagenta := 0; FMagenta := 0;
FYellow := 0; FYellow := 0;
FBlack := 255; FBlack := 255;
FArrowPos := ArrowPosFromBlack(255); FArrowPos := ArrowPosFromBlack(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetBlack(255); SetBlack(255);
HintFormat := 'Black: %value'; HintFormat := 'Black: %value';
FManual := false; FManual := false;

View File

@ -38,25 +38,13 @@ type
property Saturation: integer read FSat write SetSat default 240; property Saturation: integer read FSat write SetSat default 240;
property Luminance: integer read FLuminance write SetLuminance default 120; property Luminance: integer read FLuminance write SetLuminance default 120;
property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed; property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed;
property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R LColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TLColorPicker]);
end;
{TLColorPicker} {TLColorPicker}
constructor TLColorPicker.Create(AOwner: TComponent); constructor TLColorPicker.Create(AOwner: TComponent);
@ -64,8 +52,6 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
SetInitialBounds(0, 0, 22, 267);
Layout := lyVertical;
FHue := 0; FHue := 0;
FSat := MaxSat; FSat := MaxSat;
FArrowPos := ArrowPosFromLum(MaxLum div 2); FArrowPos := ArrowPosFromLum(MaxLum div 2);

View File

@ -43,22 +43,11 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R MColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TMColorPicker]);
end;
{TMColorPicker} {TMColorPicker}
constructor TMColorPicker.Create(AOwner: TComponent); constructor TMColorPicker.Create(AOwner: TComponent);
@ -66,16 +55,13 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
// Width := 22;
// Height := 267;
SetInitialBounds(0, 0, 22, 267);
Layout := lyVertical;
FCyan := 0; FCyan := 0;
FMagenta := 255; FMagenta := 255;
FYellow := 0; FYellow := 0;
FBlack := 0; FBlack := 0;
FArrowPos := ArrowPosFromMagenta(255); FArrowPos := ArrowPosFromMagenta(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetMagenta(255); SetMagenta(255);
HintFormat := 'Magenta: %value'; HintFormat := 'Magenta: %value';
FManual := false; FManual := false;

View File

@ -47,22 +47,11 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R RAxisColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TRAxisColorPicker]);
end;
{TRAxisColorPicker} {TRAxisColorPicker}
constructor TRAxisColorPicker.Create(AOwner: TComponent); constructor TRAxisColorPicker.Create(AOwner: TComponent);

View File

@ -44,21 +44,12 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R RColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TRColorPicker]);
end;
{TRColorPicker} {TRColorPicker}
@ -67,15 +58,12 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
SetInitialBounds(0, 0, 22, 268);
// Width := 22;
// Height := 268;
Layout := lyVertical;
FRed := 255; FRed := 255;
FGreen := 122; FGreen := 122;
FBlue := 122; FBlue := 122;
FArrowPos := ArrowPosFromRed(255); FArrowPos := ArrowPosFromRed(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetRed(255); SetRed(255);
HintFormat := 'Red: %value'; HintFormat := 'Red: %value';
FManual := false; FManual := false;

View File

@ -40,22 +40,12 @@ type
property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed; property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R SColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TSColorPicker]);
end;
{ TSColorPicker } { TSColorPicker }
constructor TSColorPicker.Create(AOwner: TComponent); constructor TSColorPicker.Create(AOwner: TComponent);
@ -63,8 +53,6 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
Width := 267;
Height := 22;
FHue := 0; FHue := 0;
FVal := 255; FVal := 255;
FArrowPos := ArrowPosFromSat(0); FArrowPos := ArrowPosFromSat(0);

View File

@ -50,21 +50,12 @@ type
property OnChange; property OnChange;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R SLColorPicker.dcr}
{$ENDIF}
uses uses
ScanLines, RGBHSLUtils, HTMLColors, mbUtils; ScanLines, RGBHSLUtils, HTMLColors, mbUtils;
procedure Register; { TSLColorPicker }
begin
RegisterComponents('mbColor Lib', [TSLColorPicker]);
end;
constructor TSLColorPicker.Create(AOwner: TComponent); constructor TSLColorPicker.Create(AOwner: TComponent);
begin begin

View File

@ -95,14 +95,8 @@ type
property OnMouseMove; property OnMouseMove;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R SLHColorPicker.dcr}
{$ENDIF}
const const
WSL = 255; WSL = 255;
HSL = 255; HSL = 255;
@ -110,11 +104,6 @@ const
DIST = 2; DIST = 2;
VDELTA = 8; VDELTA = 8;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TSLHColorPicker]);
end;
{TSLHColorPicker} {TSLHColorPicker}
constructor TSLHColorPicker.Create(AOwner: TComponent); constructor TSLHColorPicker.Create(AOwner: TComponent);
@ -144,6 +133,7 @@ begin
// Hue picker // Hue picker
with FHPicker do with FHPicker do
begin begin
Layout := lyVertical; // put before setting width and height
{$IFDEF DELPHI} {$IFDEF DELPHI}
Left := 257; Left := 257;
Top := 0; Top := 0;

View File

@ -19,13 +19,10 @@ type
TVColorPicker = class(TmbTrackBarPicker) TVColorPicker = class(TmbTrackBarPicker)
private private
FHue, FSat, FVal: integer; FHue, FSat, FVal: integer;
// FVBmp: TBitmap;
function ArrowPosFromVal(l: integer): integer; function ArrowPosFromVal(l: integer): integer;
function ValFromArrowPos(p: integer): integer; function ValFromArrowPos(p: integer): integer;
function GetSelectedColor: TColor; function GetSelectedColor: TColor;
procedure SetSelectedColor(c: TColor); procedure SetSelectedColor(c: TColor);
// procedure CreateVGradient;
procedure SetHue(h: integer); procedure SetHue(h: integer);
procedure SetSat(s: integer); procedure SetSat(s: integer);
procedure SetValue(v: integer); procedure SetValue(v: integer);
@ -36,31 +33,15 @@ type
function GetSelectedValue: integer; override; function GetSelectedValue: integer; override;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
// destructor Destroy; override;
published published
property Hue: integer read FHue write SetHue default 0; property Hue: integer read FHue write SetHue default 0;
property Saturation: integer read FSat write SetSat default 0; property Saturation: integer read FSat write SetSat default 0;
property Value: integer read FVal write SetValue default 255; property Value: integer read FVal write SetValue default 255;
property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed; property SelectedColor: TColor read GetSelectedColor write SetSelectedColor default clRed;
property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R VColorPicker.dcr}
{uses
IntfGraphics, fpimage;}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [TVColorPicker]);
end;
{TVColorPicker} {TVColorPicker}
constructor TVColorPicker.Create(AOwner: TComponent); constructor TVColorPicker.Create(AOwner: TComponent);
@ -68,15 +49,6 @@ begin
inherited; inherited;
FGradientWidth := 256; FGradientWidth := 256;
FGradientHeight := 12; FGradientHeight := 12;
{
FVBmp := TBitmap.Create;
FVBmp.PixelFormat := pf32bit;
FVBmp.SetSize(12, 255);
}
// Width := 22;
// Height := 267;
SetInitialBounds(0, 0, 22, 267);
Layout := lyVertical;
FHue := 0; FHue := 0;
FSat := 0; FSat := 0;
FArrowPos := ArrowPosFromVal(255); FArrowPos := ArrowPosFromVal(255);

View File

@ -44,22 +44,11 @@ type
property Layout default lyVertical; property Layout default lyVertical;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R YColorPicker.dcr}
{$ENDIF}
uses uses
mbUtils; mbUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TYColorPicker]);
end;
{TYColorPicker} {TYColorPicker}
constructor TYColorPicker.Create(AOwner: TComponent); constructor TYColorPicker.Create(AOwner: TComponent);
@ -67,15 +56,13 @@ begin
inherited; inherited;
FGradientWidth := 255; FGradientWidth := 255;
FGradientHeight := 12; FGradientHeight := 12;
Width := 22;
Height := 267;
Layout := lyVertical;
FYellow := 255; FYellow := 255;
FMagenta := 0; FMagenta := 0;
FCyan := 0; FCyan := 0;
FBlack := 0; FBlack := 0;
FArrowPos := ArrowPosFromYellow(255); FArrowPos := ArrowPosFromYellow(255);
FChange := false; FChange := false;
Layout := lyVertical;
SetYellow(255); SetYellow(255);
HintFormat := 'Yellow: %value'; HintFormat := 'Yellow: %value';
FManual := false; FManual := false;

View File

@ -127,19 +127,8 @@ type
property OnStartDrag; property OnStartDrag;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R mbColorList.dcr}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [TmbColorList]);
end;
//taken from GraphUtil, only for Delphi 5 //taken from GraphUtil, only for Delphi 5
{$IFNDEF DELPHI_6_UP} {$IFNDEF DELPHI_6_UP}

View File

@ -170,18 +170,9 @@ type
property OnClick; property OnClick;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC} { TmbColorPalette }
{$R mbColorPalette.dcr}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [TmbColorPalette]);
end;
constructor TmbColorPalette.Create(AOwner: TComponent); constructor TmbColorPalette.Create(AOwner: TComponent);
begin begin

View File

@ -71,21 +71,12 @@ type
property OnDblClick; property OnDblClick;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R mbColorPreview.dcr}
{$ENDIF}
uses uses
PalUtils; PalUtils;
procedure Register; { TmbColorPreview }
begin
RegisterComponents('mbColor Lib', [TmbColorPreview]);
end;
constructor TmbColorPreview.Create(AOwner: TComponent); constructor TmbColorPreview.Create(AOwner: TComponent);
begin begin

View File

@ -160,22 +160,11 @@ type
property Items; property Items;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R mbColorTree.dcr}
{$ENDIF}
uses uses
PalUtils; PalUtils;
procedure Register;
begin
RegisterComponents('mbColor Lib', [TmbColorTree]);
end;
//taken from GraphUtil, only for Delphi 5 //taken from GraphUtil, only for Delphi 5
{$IFNDEF DELPHI_6_UP} {$IFNDEF DELPHI_6_UP}

View File

@ -44,20 +44,9 @@ type
property ShowScreenHint: boolean read FShowScreenHint write FShowScreenHint default false; property ShowScreenHint: boolean read FShowScreenHint write FShowScreenHint default false;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC}
{$R mbDeskPickerButton.dcr}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [TmbDeskPickerButton]);
end;
constructor TmbDeskPickerButton.Create(AOwner: TComponent); constructor TmbDeskPickerButton.Create(AOwner: TComponent);
begin begin
inherited; inherited;

View File

@ -29,18 +29,9 @@ type
property UseHints: boolean read FUseHint write FUseHint default false; property UseHints: boolean read FUseHint write FUseHint default false;
end; end;
procedure Register;
implementation implementation
{$IFDEF FPC} { TmbOfficeColorDialog }
{$R mbOfficeColorDialog.dcr}
{$ENDIF}
procedure Register;
begin
RegisterComponents('mbColor Lib', [TmbOfficeColorDialog]);
end;
constructor TmbOfficeColorDialog.Create(AOwner: TComponent); constructor TmbOfficeColorDialog.Create(AOwner: TComponent);
begin begin

View File

@ -0,0 +1,648 @@
LazarusResources.Add('TYColorPicker','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#165'IDATH'#199#213#149
+'A'#14#130'@'#12'E_'#21'%'#17't'#225'1='#11#135'%'#209#141#2#214#133#24'!'
+#154#129#228#15#209#233#174#179#248'o'#218#254#206#192#194'a'#195#196#189'tY'
+#208'.#'#205'l'#233#10#178'`'#26#31'p'#4#26'An'#3#212'!'#192#1#184#10#128'|'
+#170#130#157#216#166#237#20#160#4'nQ'#1'/K'#245#246'<G'#24#235'~'#164'='#172
+#192#220'O'#174#14#217#12'{_'#248'k'#139'T'#23#253#168'E'#246'|**'#135'VZ'
+#171#190'E!'#155#182#241#246#246#243#164#0':'#1#176#158#179#7'i'#3#10#224'.'
+#0'V'#127#1'P>5'#155'3'#131#180#127#180#4#227#1#247'N'#30#229#173#6'b$'#0#0#0
+#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TBAxisColorPicker','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#1#24'IDATH'#199#237#212
+'=/'#195'Q'#20#199#241'O'#169#191'RM'#212'b'#177'1'#216'L4X'#172#18#3#226#13
+'X'#12'^'#5'#'#139#25#139#23'P'#27#131'Z4a"'#18#155#135#196#210#178#136'g'#29
+'<$5 %R"'#237'_"q'#146#147#220#156'{s'#191#249#157'''B'#182#8'D'#31#139#197
+'&'#188#247#248#171''''#202#156#191'z'#251#22#15#234'"'#145'('#184#11'O'#193
+'/'#1#10'a'#3'n'#255#188#130'o'#0#205'1j'#159#240'T'#229#20'5'#199#152#25' '
+#17#16#171#227#224#148#204#246#207'@e'#21'$c,'#12'2'#181#202#197#229'K'#127
+#143'u3'#146'b%S'#5#192'x'#15'K['#228#242'/'#159#195#218#6#19#163#180'%'#185
+#202'W8'#7#173#13#236#158'}'#190'+\'#19#175#225#234#174'B'#192#241#9#253#237
+#236#239#149'b'#245#245't'#180#147'M'#19#220'W'#8#152'_fv'#130#201'a'#142#14
+'ii'#164'7'#197#238'&'#15#231#4#213'h'#211#233'9'#134#250#232#234#228#161'@z'
+#145#155'\'#169'&U'#153#131#236':;'#235#31#183#229#255#170#248#223#166'e'#0
+#197#16#1#145#16'S'#20#186'='#3'J'#10'OT'#224'a'#206#144#0#0#0#0'IEND'#174'B'
+'`'#130
]);
LazarusResources.Add('TBColorPicker','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#142'IDATH'#199'c`'#160
+'1`$VaU'#213#239#255#164#24#220#214#198#202#200#192#192#192#192'B'#188#150'/'
+'d'#249'`0Y'#240#149#214#22'|'#30#242'>'#160#208#130'5+f'#194#147'aHD:#U'#131
+'h'#205#138#153#255#131#195#211#224#130'k'#24#24#254'cZB'#197' '#10#14'O'#195
+'b'#9#149#227#0#211#18#26#228#3'TKh`'#193#218#149#179#24'h'#230#3'T'#195#169
+#28#7#152#134'ShAHD:'#227#26#6#6#218#229#3#220#134#14#165#162'b$'#148#166#131
+#180#202#164'9'#0#0#188#212'<{Tp~_'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TBColorPicker1','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#142'IDATH'#199'c`'#160
+'1`$VaU'#213#239#255#164#24#220#214#198#202#200#192#192#192#192'B'#188#150'/'
+'d'#249'`0Y'#240#149#214#22'|'#30#242'>'#160#208#130'5+f'#194#147'aHD:#U'#131
+'h'#205#138#153#255#131#195#211#224#130'k'#24#24#254'cZB'#197' '#10#14'O'#195
+'b'#9#149#227#0#211#18#26#228#3'TKh`'#193#218#149#179#24'h'#230#3'T'#195#169
+#28#7#152#134'ShAHD:'#227#26#6#6#218#229#3#220#134#14#165#162'b$'#148#166#131
+#180#202#164'9'#0#0#188#212'<{Tp~_'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TCColorPicker','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'rIDATH'#199#237#148'1'
+#10#128'0'#12'E_'#160#155']'#245#178#158#197#11#218'+'#8'q'#144'B'#219#193
+#197'Dh5['#151#23#222''''#191#224'<R>fU}'#10'L"'#21'3x'#27'T'#11'&'#3'`'#186
+'['#16#189#13'b'#15#17#189'n'#144'OJ'#1'v'#3#224#210#176'K'#3'Y'#13'z'#192
+#213#3#29'/"'#1#216#236'"'#26#232'L'#127#131#175#25't'#253#155#2'p'#24'494Mv'
+#159#19'y'#240#21#254#153#205#127#188#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TCIEAColorPicker','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#2#191'IDATH'#199#181#149
+#191'k'#20'A'#28#197'?'#179#247'#'#151'_"'#193#132'C!'#255#129#127#130'E'#210
+#8#9#130#133#152'B'#136#169#18'll'#131#173#144#194#198'J'#8#218'i'#151#194'F'
+#137#149#228#138#148#218#4'S'#152'B'#252#1#134'h'#226#253#218#217#157#189#221
+#187']'#139#253#238'eo'#189#187#196'"'#3#143'9n'#231#222#155#247#222#236#13
+'\'#240'P'#0#209#195'("'#128#30#180'S'#8#128'v'#7#130#26#4''''#208'>'#145#249
+#15't'#142#5#191#161's'#8#209#1'D?!'#2#245#29#149#7#224#4#240'Sh'#1#30'`'#4
+#30#224#25'hih'#11':N'#140'H'#128#11'h'#160#217#227' '#22#248'%D'#182'@'#203
+'z_'#28#16#200#151#26'pRp3'#179'-sV'#224#11'P'#151#223#183#179')F'#25#210#132
+'0A'#218#166#13#132'}'#4#190#13#171#201#19'e'#187#143#131#180#152'#'#207#233
+'#0pt'#134'D'#147'u'#144'|'#254'/'#1#247#28#228#201#236'Hi'#231#22'heZw'#134
+#20'ldMt^'#129'0E'#234#14#217#189#151':'#207'^_'#166'|'#146't'#174'o4'#195
+#242'7'#25#17#127#176'@'#3#152#0#138' '#11#237#12#185#238#227' '#237#194#200
+'6'#7#8#212#229#241'8!#8'#228#254'!w3'#153#167'b'#185'z'#25#180#13#205#240'l'
+#129#0'C'#9#155#18#154#2#154#28#26'k'#208#9#154')'#193#206#11#152#186#4#19
+#163#176#189#13#171#171'`'#219#131#4'|'#2'!/'#161')'#226'P'#16#228'p'#176'p'
+#177'pQ'#24#212'L'#9'u'#240#10'n,'#193#254'G'#160#6'O6`k'#11#22#22#250#9#132
+#132'8'#180#209#180'ph'#225'P'#196'!'#143'CQ'#136's'#184#228'0(\'#198#30'? |'
+#244#148'`'#127#31#133#31#251'__g'#180'R!'#152#155#163'S'#169#196#127#211#167
+#2#134#16'['#28#216#226'@S'#16#145'\'#202#133#194'02;'#141#253#230#7#6#31#133
+#1'"'#20'`'#29#29'a'#202#229#158#247'9'#15'PC'#19#162#9#208#140#138#139#196
+'A'#28#145#139#133#193#194#160#240#24#255#244#153#252#157#155#212#223#189#22
+#7'`MNrmq'#145#175'kk='#175'[W B'#211#198#193'OE'#20';p'#187#2#10#131#133'Gc'
+'}'#131#235'o'#159'S~'#249#140#250#206'{'#242'SS'#148'WV8'#220#220#164#214'l'
+#158#222'd'#137'@U'#206'}'#220'Ao'#201#249'T'#193#137#136#162#197#238#173#219
+#204#222#191#203#244#252'<A'#181#202#135#229'e'#236#189#189'.'#185'J_'#153'K'
+#236'FW'#168'2I'#149'1'#26#148#168'R'#160'N'#129#6'y'#26'X4'#5'6'#10#23#176
+'Q4'#186#217#247#144#165#4#238'!W'#230'1'#26#11'M'#7#7#31'M'#169#27#145'+'#5
+#187#221#252#193#160#208'(!'#239#183'c'#149#237#224'PN'#13'RtK'#142'g\'#176
+#145#130'='#20#158#144#183'{'#200#212#25'"'#23':'#254#2#132'T'#179'('#228''''
+#128#226#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TCIEBColorPicker','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#3'WIDATH'#199#189#149#203
+#139#28'U'#20#135#191#234#231'tUw'#143#153'!'#147'8'#139'YE'#196#165'('#226
+'F$'#130#16'F'#144#8#179'7'#136#248#216#185#11'Y'#184#25#204'" '#248#31#248
+#218#168#11#21#18#12'Yh'#130#11'7'#130#207#140#139'@'#16#196't'#156#153'd:'
+#221'U5]'#213'U'#247'V'#185#184#167#186'nu'#26'f'#165#23#14'U'#171#243#221
+#223#239'<.'#252#199#199#1' '''#7'x'#2'8'#3'<'#14'l'#0#235#192#163#192'*P'
+#207#128#20#152#2#145#21#161#132#15#12#129#3#224'.'#240';8'#223#225'4l'#218#0
+#216#5'N'#0#203#128#11't2h'#165#176#156#128#19#11' '#150#228#19#224#16#8#4
+#224#3'#'#129#220'69+'#0#31#248#27#216#200'`Y'#131#171#160#147'@3'#129'F'#2
+#221#233#17#128#177#0#238'J'#204#0'Y'#25#3#13#15#20#28'S'#224'%'#224#166#208
+'N'#161#149'@s'#10#237'E'#128#208#130#140#128#191#196#206#25' '#4#20#160'aOb'
+'E'#129#151#26'@+-U'#28#155'Bk'#190#6#190#165'`O'#188#198#6#248'&9'#26'&'#26
+#254#209#176#174#160''''#16'[A='#129'G"h'#20#128#192'R0'#6#238#136#178#10' '
+#16'@f'#148#236'j'#24#9#192'M'#161#173'D'#193#20'j'#9#212'#'#232'G'#230'['
+#177#231#160'z'#251#18'0'#150#228#162#226#190#134'{'#26#250#150#130'Fj,'#170
+'M'#165#155'"'#232'M'#160'a'#23'x 0'#22')'#200'J'#200'D k'#10#130#20#150#148
+#169'CK,'#170#197'P'#147'"'#247#15#161#30'Jqw'#31#30#180'*@'#151#223'{'#26
+#198#26'z'#22#160')'#10'j18E'#23#5#208#243#161#177'/J'#22#2#252'j'#171#162
+#225#129#134#145#134'ee'#0#205#194'"'#25'8''2-'#154#7#144#251#208#219#131'f~'
+#148#130#188#4'D'#2'x'#204']G'#167'!a'#232#211'J-'#139'&'#162' '#132'|'#8#217
+#24#250'@'#139#163'j'#144#27#192#241#206#26'_'#189'~'#157#213#206#10'n'#187
+#203#31';'#223'p'#245#211'7'#8#194'`fQ.'#10#178'}'#200#180'q'#184#15','#205
+#150#156'mQ^*Xs'#215#184#245#206'-6?x'#142#236#206#14#199#21#188'u'#246#18'['
+#175'}'#193'g'#23'7'#169'I'#23#229'!'#228'#s{'#171'|'#244#0#143#249'I'#206'J'
+#200#246#203#219'\'#248#242#2#191#222#222#225#148#134#137#130#143'>9'#207#197
+'wop'#242#212'i'#246#127#188#129'S'#172#137'!'#228#186'"~'#22#139'k'#144#195
+'F'#127#131#203#131#203#232#0#226#12'"e'#134#237#224#254'.m'#247'$'#225#161
+#241'?'#27#139'EVReEUA^Bn'#254'y'#147#173#167#182#248#246#251#171#168#12#18#5
+'N'#187#199#147#207#188#196#135#219'oR/n?6'#153'd'#1#204'@6'#192#212#226#12
+'y'#165#139'r'#184#242#222#21'|'#127#200'/?]'#231'Dw'#133#179#155#231#248#249
+#135'k|'#254#254'y'#188#24'<'#31#188#3#240#180#241#219#5#186'T'#255'O'#131'c'
+#0#207#11'`.'#222#222'|'#149#23#159'~'#129'p4'#228#218#215#31'3'#216#249#141
+'N'#10'n'#4#238#8#220#216'$+'#194#179#0#30#240#202#12#240#236#28'@Z'#162#171
+'aU'#155'[.i3p'#237#4':'#135'&'#150'ry'#245',H'#199#130#156#163'x2'#211#185
+#228#197#234#206#204#171#214'Tf'#217#165#169#12'Yll\'#212'9'#133#255'i'#165
+#200#234#225#228'(3<'#190'<8'#245')'#212'c'#168'+'#168'Y'#131#196#220#221#138
+#228#138#255#233#252#11#27#193#232#22'\'#223'1}'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TCIELColorPicker','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#2#218'IDATH'#199#189#214
+#207'k\U'#24#198#241#207'9w&I'#155#164'41'#134#154#250#3#197#31#168')'#5'AD*'
+'T'#131'h1'#180#27'A7'#174#252#15'D'#196#133#160#11'ES'#20#10'uc'#187'J'#187
+#20#17#165#24'Pj]t'''#232'V'#4#23'5'#139#180'L'#200#216'4i2'#153'$3.'#230#204
+#204#157#201#196#154#133#30'x'#224#156#195#220#231#251#158#247#158#251#190
+#195#127'<'#2#168#171#195'Sx'#9#143#226'~'#220#147'4'#210#252'u'#13#27'XOZ'
+#195'm'#172#226#22#254#194#18#174#227'7'#194#183'B!O'#171'`'#19#219'I'#181
+#164'z+'#146#158#225#253'S'#232':'#0'k'#168'b'#235'N'#128#208'='#15#200#146
+']'#145#208'G'#232#199#194'N@E'#176'%'#216#22'm'#11'j'#162#186','#25'dm'#163
+'P'#236'4T'#204')'#237#183#1'O"ZI'#170#202'l'#202'l'#137#182'dj'#162#172#3#16
+#147'r'#243#208'T'#214'^'#183'S4'#137'`]P'#22'T'#5#155#130'M1'#157'&('#10#132
+#144#30#12#201#164'k'#157#223#235#4#28'n%t1'#129'6r'#160'm!'#153'$'#133#164
+#214':'#230#246#210'<'#134'<`'#162#5#184#142#155'-'#8#213#4#26'l'#1't'#194'z'
+#129#155#192'6`'#188#245#240#146#160#132#135#4#149#4#152'_'#184#201#208#128
+#145#225#253#201'@'#151'ah'#25#182#230'1'#246#6'l'#226#154#224#9#220'(-{k'
+#234#29#183#203#183#172#175'VLO?'#227#252#231'o'#27'.'#238#207#165'('#7#139#9
+#190'3E'#227#29#151#251#15#193#159#165#178#153#199#222't'#246#234#172#231'&'
+#31'1'#129#143#222'='#227#245'7f'#204'}'#249'E'#219'('#232'|''A'#195'<'#235#0
+#220#221#241#5'-'#225#135#247'?s'#226#147#247#140'M>k=}'#229'3'#167'?6'#245
+#252#171'~'#186#250#187#23#158'>'#182#19#16#147'y'#12#141#27#188#27#160#142
+#210#252#162#218#169#199'-'#27#179#146'J'#206#1#28':t'#159#27#165'5'#220#149
+#3#232#154#235'NQ'#255#142'R'#178'q'#228#168#159#191#250#198#241'WN'#25#193
+'A'#20'VV|77'#231#220#153#243#132#194#174#151#169#245#29#182'C'#174#215'{'
+#213#171#190#147'''=<:'#234#216#212#148#129'r'#217#229#217'Y'#211'/'#159#240
+#233#7#167#219#21#181'YMW'#176#140'2J'#184'F8'#23':'#171'i'#247#168'^'#186
+#164'z'#225#130'_'#175'\qxt'#212#135#23'/z'#241#200#209#198#11#137'='#148#143
+#190#240'/N'#208'L'#222'k8'#158#250#196#3'u&*'#20'*]''X'#197#205#212#19#22'1'
+'O8{'#135#19'H'#253#229'G'#220#155#26#207'phh'#164'W'#206'cW'#29#236#238#7
+#187#141#5'\Nwm'#16'C'#145#193'H_'#175#244'4'#11'nq'#15#0#248#5#15#166#219'4'
+#28#27#167#24'o'#22#211'^'#209'g{'#4#212#240'='#198'0'#20#26#167#216#23'9'
+#208#203'8k;'#23#246#242#15'a'#25'_'#227'`d_` '#210#159#212#234'='#185#206
+#249#191#140#191#1#242#234#186#197'c'#177']'#238#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TGAxisColorPicker','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#1':IDATH'#199'c`'#160'1`'
+'d```'#248#253#159#229'?'#3#3#15#3'*'#230#134'b^'#28'l|j!'#226#172#140'l'#140
+','#12#12#12#12'_h'#232#3#250'X'#240#149#214#22'|'#30'H'#31#188'y'#246#157
+#129#147#135#141#129#155#143#202#22'|x'#245#155#161#202#233#16#195#231'w'#127
+#25#190#127#249#195'`'#234#173#200#144'7'#203#143#129#147#151#155#242' '#250
+#244#234#15'C'#161#250#5#134#134#195#150#12#178':R'#12#12#12#220#12#203#202
+'/0'#180#132#175'g'#168#216#150'D'#185#15#150#214'=e'#8'jWd'#16#210#225#133
+#203#249'wZ3t9nb8'#187#255#30#131#134#163'.e'#22#188'~'#244#139'A'#211#143#3
+'C'#156'['#130#155#225#213#139'/'#12#178#148#230#3#17']N'#134#211'k^3'#200'y'
+'!'#140#250#249#249#23#195#213#173'w'#24'|g'#134#144#148'o'#176'Z`'#211')'
+#195#176#202#247'>'#195#242#248#139#12#10'N2'#12#223#223'10\Zp'#151#193'0'
+#211#136#225'7'#31';'#195'oj'#228'd'#175#205':'#12#215#23#190'g'#184#179#239
+'%'#3#187#16'7'#131#203'"W'#6#17'}E'#146's='#222'| '#23'/'#195' '#23#143'('
+#224#190#142#22#21#163#165#233#192#6#209#127#218#6#17'#'#195#144#5#0#132'\f'
+#134#223#178#204'Y'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TGColorPicker','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#142'IDATH'#199'c`'#160
+'1`$Va'#213#239#170#255#164#24#220#198#218#198#200#192#192#192#192'B'#180#142
+'/'#228#249'`'#16'Y'#240#149#214#22'|'#30#242'>'#160#212#130'5+f'#194#147'aH'
+'D:#U'#131'h'#205#138#153#255#131#195#211#224#130'k'#24#24#254'cXB'#205' '#10
+#14'O'#195#180#132#218'q'#128'a'#9'-'#242#1#138'%'#180#176'`'#237#202'Y'#12
+'4'#243#1#138#225#212#142#3#12#195')'#181' $"'#157'q'#13#3#3#237#242#1'NC'
+#135'TQ1'#2'J'#211#193'Ze'#210#28#0#0#208#222'<{'#227'0'#150#239#0#0#0#0'IEN'
+'D'#174'B`'#130
]);
LazarusResources.Add('THColorPicker','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#1#194'IDATH'#199#237#211
+'='#142#28'U'#20#197#241#223#171#143#238'j$'#220'A'#7#131'z'#3#198'B'#4'$ '
+#193#6'f5$l'#194#249#196#236'cv'#0'N-YHdD&Bj'#144#166#171#234'}\'#130#246'80'
+'3'#1'H$0Gz'#201#13#238#255#158#163#243'x'#210#127'^'#233#195#193'~'#191#143
+#211#233'd'#191#223';'#28#14#174#174#174#28#143'G'#199#227#209#205#205'M'#250
+#187#128#225#195#193#233'tJ'#251#253'>'#182#219#173'q'#28#13#195#160#235#250
+#127#180#252'A'#7#247'z'#254#233#243'x'#246#241'3'#135#195#193#237#237'm'#250
+'W'#242#187#190#190#142#167#22#189#207'6'#127#255'm'#248#188#242'b'#246#203
+'n'#246'*-~'#176'z'#227'kc'#250'F'#171'_'#136#159'>'#146'^'#209#253#200'''o'
+#249'r'#8'_m'#248'l[l'#166#159'E'#247#154#195#175#198#151#223#165#191#182'('
+#207'R>'#19'g5'#157#157#205'~O'#171#179#234#15'YE'#20#210#29#253#137#233'7'
+#238#198'$oB'#154'H'#187#194#174#136'y~'#164#166'5'#211'V,'#154'YI'#139#197
+#236#206#170#168'*'#180'D'#14#253#204'|G'#222#16#241#238#216'.'#232#10#185'<'
+#12'He}'#15#136#180#170'f'#139#217#156#178#162'*BTRN'#134#153'e&'#183#208#238
+#131#238#131#161'J'#235'#'#0#173'J'#145'qy'#213#170#164'lQdMA{w'#228#176#178
+','#212#148#180'..['#134#144'r'#19#173'>'#226#160#21#162#18'U('#154#162#200
+#178'j'#209'd'#180'F'#151#25'WJ'#166#246'D'#143'B'#170'M'#212'F'#169#143'9h'
+#23'@jB'#213#210#5'QTY'#179#138#11#160'^'#22#150#194#253'M*'#26'jH-'#30#6#4
+'R'#191'C'#213#169'Fa'#210'4'#197#164#215'K'#214#142#205#200#184'e'#154#24
+''''#186#29'&l;:'#164#244#244#249#255'o'#250#19#184't'#236#196'k'#131'4&'#0#0
+#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('THexaColorPicker','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#2'lIDATH'#199#237#149'!s'
+#219'@'#16#133'?'#205#4#172#216#29';A'#149#25#134#6#186',e'#13'Ka~B'#203#250
+#23#26#214#192#192#154#181#172#134#130#9#139'Y'#205'b(3'#29#211#178'-'#184
+#147'e;v'#198'-'#235'LoFs'#214'z'#230#189'{'#239#237#173#224'__'#197#177'?n'
+#204#236#151#2'-'#148#17#186#22'|'#132#190#3'm'#193'+'#180'+p'#17#188#192'|^'
+#28#196':;F'#240#29'%"'#160#164'''&2Z`'#149#247'u'#250'-'#175'(8H0'#181'gkX1'
+#145#9'T'#185#232#242'>'#16'n-]A]'#155'5'#171#151'*'#14#18'4,'#8#212#8'k*'#23
+'FP'#205'D='#187#181#144#148'|'#185'6'#251'4'#219'%yA0'#177'o'#182'D)'#233
+#240#8#14#135'w'#130'v '#14'4'#131#138#130#246'iGA#t'#205#9#22'-y"P'#227#16#4
+#143'''RIHF'#251'|'#226'~+'#23#7'ti'#239#215#240#243#198#236#221#253#168'b'
+#151#192#222#155#160'x"'#30#143#163'E'#16#28#130#175#28#189'B'#233'3'#176'dk'
+'zRNYI'#188'?'#162#224#218'>'#219#140#134'*'#3':'#28#30#193#19#17#132' '#142
+'2'#7#222';({FB'#205'5'#133'>'#194#243#212#236'M'#147'Tl'#8'~0C'#16#4#165'D'
+#17'b'#182#137#13#145's.'#217#225'S'#22'a'#200'a'#168'E'#8#14#180#217'S &'
+#166#180#212#212#184#12'\!'#148#8#21#30#161#203#137#8#206#167#187#161#29'H'#6
+#149#172'L]'#14#127#171#149#207#0#180#208'"'#152#152#208#230#211#10'B'#153#21
+#8#30#144#156#9#221#216'Et }'#206'$n'#213#244'@'#6'WLy`'#190'Q0'#16#185'L'
+#228#145't'#180#12#146#186#168#7'-'#211'{7'#16#245'p^'#193'b'#143#224#174#152
+#23#151#134#141#253#159#172#241#184#156#135#135#184#26#219#179#203#29#212#178
+'['#3#138#197#219#195'm'#250#129#143'<p'#187#241#187'B'#210'm'#166'L'#224#29
+#208#234#8#24'3x'#187#165#232#250#2'f'#175'L'#211#175#22'L'#136'T'#212#212'T'
+'x'#2#1#159#6#220'zk'#224#13'Co'#168#173#20#196'Q'#196#219#215'G'#197#5'W,'
+#185#163#162#203'wI jzv'#188#222#187#213#170'0'#157#194#252#132#239#193#147
+#157#27','#152'P#'#234#198#19#238'+'#24#222#151#10'!P'#172#31#139#147'?8'#173
+#137#5#20#214#146#192#143'Z'#3#168'P'#160#127#246#193#9'\'#2#139'd'#129'Hjn/'
+#163#29#165#203#205'/i'#204'>>'#242#127#253#213#250#13'Z'#161')'#152#11#8#251
+'V'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('THRingPicker','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#2'0IDATH'#199#221#149'!s'
+#27'1'#16'F'#159'f'#10'$vb''xa'#23#230'@CCC'#7#6'6'#176#204'e'#13',lX'#242#19
+#2#29'h'#24#232'2'#135#213','#130':'#166'c'#18#219#2#221#164'u'#226'$v'#130
+'Z'#161#187#145'Fo'#247#219'o'#181#240#175'/'#181#207#161'+'#153'K`'#133#161
+#163#6#28'5-c'#142#212#165#250#16'`*'#19#9#172'i'#208'8'#12#14'='#0'2'#14#168
+'H8N0j'#249#226'='#159'^'#218#168'e$'#27'<'#21#150#12'd '#17#201#143''''#12
+#22#139'f'#131#196'Z'#148#237#212#222#128'J'#166'b'#134#239#158#128#5#192'b'
+#168#176#128'&'#163#201'@'#132'l '#26'dU'#139#26'?'#135#168#231#145#207#197
+#144'I'#4#192#227#208#156'2'#230#226#137#222'Q~H'#197#2#186#14'B'#130'h'#160
+'K'#168#179'm'#200#214#207'Dn'#196#19#128'H'#162#227#24#205#157#186'~'#181'N'
+#242'0'#21#252#6#186#146#16#186'E'#157#255#169#201#150'Dk'#192#226'H'#128#195
+'r'#167#190#190#237#146#163#165#146#197'D'#136#30'z '#174'wK4'#151#7#185#193
+#3#25'C'#198#171'Su'#136#223#229'[+'#244#185#184'a4C})'#146'>f'#176#2#12#142
+'D'#166'zOGe'#7#193#3#26#238'7'#207']'#228'qX2'#9#6#215#28#184#250#10'|'#2
+#173'!'#132#29'6'#205'z0 '#232#247#0#162#134'`'#192#234#2'y'#10'p='#244#9't.'
+'g'#15#207#192#2'M'#9#207'9'#184#255#185#13#24'''Xv@*fxW'#6#166#129#156#160
+#29#193'rG'#31#212#11#17#147'!%8'#6#238#206#213'^N'#146#217'BJa'#19#164#30
+#213']'#239#238#131'c'#192'G '#128#207'0'#251'.r{'#241':D>'#255#18'V~'#144
+''''#194'I'#243#24#253#238#167'b.b'#128#228#193'dh5,owCd'#154#4#223'C'#244'`'
+#226#16#253#153'z'#243#185#174'g'#131'T'#1'L_ M'#5#173'-q'#218#8'u.'#198#208
+#165'}!u'#168'n'#172#246#158#7#245#168'@'#170'\'#250#162'IP'#15'B8'#160'1'#12
+'3'#129#225'r'#167#14#154#7#221#189'R'#211#169'HXCe@[0'#127'7n'#134#152'@'
+#159#128'Y:'#245#177#145'9'#23#233'7'#160'C'#137#186'v'#208#180'pt'#169#20
+#255#253#250#13#251#14#233#227'o'#203#226'H'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('THSColorPicker','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#1#213'IDATH'#199#237#148
+#173'r'#27'A'#16#132'?U'#25#204'2'#9#6#10#198#204'a2T'#152'h'#30#195#175#16
+#24'('#152#176#208'<'#130#12#15'J'#204#134#130#134'2;'#177'm'#230#128#253#191
+#189'$0'#196#163#146'jk'#231#167'gzz'#5#239#246#191'm'#1#240#182#249#248#198
+#167#17#182#192#22#206'Kx'#4#6#196#19'+'#196#6'K'#206#215'5'#28'A'#3#216#0
+#183#23#216'ZH'#189'C'#24#3'0'#192#234#153#197'yX'#220#0#232':'#130#174' @ '
+#229'#bD'#241#3#2'/'#24#129'1'#196#249#244#133#24'C'#204#244#0#4#0's19'#220
+#203'B'#152#1#134#229'q'#175#171'['#0#150'?Gp'#148#160#220'Lj'#203#192#185#26
+#192#154'H'#175#194#161#203#149#202#165#165#179#129'+'#248#248#216'u'#13'|'#3
+#224#157#129#185#233't1'#198'p'#213#20#1#180#10'p5'#188#240#25#220#10#0'f'
+#168#154'@'#170#27#177'N'#25'&%'#254'R'#157#152'ZMY'#3#8#23#156'j'#217'(;'#8
+'m'#222'='#29'`'#252#0'g'#165'Qr'#172'&'#0'i'#178#188#131'<'#129#15#193'_'
+#239'OU'#207'''6'#199'}'#131'~'#250'q'#15#192'3A'#210#191'6'#199#232#241'=E2'
+#240'-'#153#157'9'#159#248#243#127#12#152#243#132'%cY'#154'('#0'~;'#236'x'#1
+'.'#0#172#179#250'B'#3'b'#247'p'#128#11','#5'k'#202';'#176'D'#148#213'2u13v'
+#239''';H'#10'y'#252#252#5#128#221#254#144'e'#232#154#21#171#8#185#165'h'#178
+'-'#254#161#162'Z'#5#180'2'#213#220#146'CJ'#187#228#246#161#217'<'#128'k='
+#138'D'#245'25'#195'['#191#228'@'#156'U4'#196#186#242#249#29#208#253#251#204
+#189'd'#11#133#210'"'#165'i\'#248'}'#248#190#15#231'k'#161#168#157#160'G'#136
+#15#205#138#179'+>'#181'I'#25#155#222#170#159#128#213'*'#180'm}q7'#7'g'#181
+'d'#251#13'u'#163#189#219#223#236'7f'#251#200#174#158'I'#0'm'#0#0#0#0'IEND'
+#174'B`'#130
]);
LazarusResources.Add('THSLColorPicker','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#2#10'IDATH'#199#221#148
+'!t'#26'A'#16#134#191#188'W1'#235#238'\'#145#169'C'#6#23'$u'#196#129#11#146
+#186#171'C'#158'E"'#139'#'#146#184#196#17#7'2'#178'u'#197#21'I'#221#226'v'
+#220'T'#236#221#5'Bh_'#2#21#237#190#183#239'v'#231'f'#255#127#254#153#217#133
+#127'm'#228#163#185#229#163#185#253#21#240#193'pnff'#131#225#220#6#195#19#145
+#244#243#153#1'd'#249#204#204#204#178'|fY>'#183',?'#1#193#245' '#130#246#183
+#190#229',}'#206#222#10#222#201'fv'#247#165']'#237'{'#159#31#170#245#237#248
+#234#236'h'#2#128'N'#255#206#144']'#219#253#184#187#131#249'f'#130'v'#255#206
+'f'#147#14'W'#159#238#247#254'='#220't'#143'S'#208#186#158#218'|z]'#237'?'
+#246#158'H'#22#183#221#163#178#194'egj'#219#227#178'3'#181#210'~t'#215'\'#180
+'w'#193'/'#218#211#211']'#168'zk'#178#3'^oO^'#7#30'.'#196'l*'#182#14'b'#185
+'a'#239'CbXfb'#223#237#252#25#248'ykbFf6'#24#26'@i'#127#9#247']'#185'P'#17'4'
+#128#223#0'"8'#132'D!m/'#248#241#152'U'#7'>4ox\6'#217#240#13#145#162'GW'#203
+#131#129'W'#4#222#165'8@'#3#16'@'#136'3l9'#215#154'c'#134'?'#187#132'tM'#0'R'
+'W'#16',W'#127'&P'#17'TA7'#17'9AX'#247#234#248#175#25#181#198#24#128#134#182
+'P'#241'lP$'#21'4y'#133#130#141'$Q'#137#2#10#14#168#143'W'#164#141'1'#245#172
+#1#11#144#213'&'#6#131'G'#21'D'#220'!'#5'V'#222#177#138' H'#26#15'{@'#20')'
+#222#128#230#168#6#203#128':'#16#23#213'y'#20'<$E'#138#212#251#231#224'/(p'#2
+#10#170#128#10'I'#20#2#196#195'"'#224#146'hS'#20#210#162'H'#192#178#240#220
+'z'#29'l'#191#200#18#139#28'<@'#192#17#195'u'#5'k '#2'8'#135''''#128#7'-'#24
+'V'#186#151#250#179#195'EV'#160'HP'#145#0#192'#'#2#146#198#232#21'E'#211'B'
+#22#176#250#205#253#218'+2'#177#142'$'#149'KQ'#245''''#198#232#162#130#150'M'
+#196#255'<~'#1#218#159'.'#233#250#178'['#4#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('THSLRingPicker','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#2#151'IDATH'#199#221#149
+'/{'#27'9'#16#135#223'y'#158#3#18'['#177#21't'#153#195'\'#22#195'@'#195#20#22
+'6'#240#152#143']?'#194#149#245'>B'#161#11#13#3#19#230#176#152'UPb'#187'L'
+#195#230#128'6'#142#221'$'#189#220'St'#29#180#251'hV'#239#252#249#205#14#252
+#223'M^'#227#244#217#214#150#185#193'S'#232#129'H'#207#156'%o'#228#147#252#20
+'`e'#23#150#217'1'#195#17#241'D'#220#4'P"'#208'Q'#137#188#197#203#246#197'{~'
+'{'#233#160#183#133#237'It'#4#20'P'#160'2'#160#7#15'O '#224#216'cCo'#18#138
+#188#26#208#217#202#252#244'<'#146#9#0#4'<'#29#1'p('#14#5#6'P'#15#131#199'nz'
+#147#229'S'#136'<'#141'|m'#30#165#146#129'D'#196#241#142'%'#31#191#171#247'`'
+#127'Y'#199#6'J'#129'\a'#240'P*'#242#254#20'r'#242'ra_,'#145#129#129'J'#225
+#12#199#181#252#253#195'>'#217#183#149#145#246'PZB'#184'9r'#245#216#147#147
+#18#237#128'@'#164#2#145#192#181#252'!'#185'V'#203#170'$ '#3#25#165#0#9#168
+#14#196'G'#177#205#133'1$'#24#129'a'#247'|'#137#214#246#205#190#144#0#197#163
+'$y'''#0#187#251'{K'#170'S'#193#30#1#25'P'#7#233'l)'#0#246#231#220#24#181#169
+'aq'#137#252#222'Jz'#200#224#6#240'D*Jw'#20'AJ'#137'<'#1#198#233'R'#0'U'#5
+#231#30#29'5BN'#128#131#187#253'S'#21'%"'#1#165#194#164#154'f9g'#146#142'-'
+#251#131'\'#161#170#226#187#163'P'#198#14'Rm'#208#156#159#145#169#186'I'#128
+#224#142#1'S'#6#138#30' '#227'AJ'#245'HV'#14#178#135#224'N2;'#0#226#8'c'#5
+#167#205#247#193'J)'#148'a'#160'N'#209'?d'#160'(>'#196#163#12#2'0k'#225#197#8
+'w'#183#167#128'e'#133'mi_'#143#223#247'`'#24#14#23's'#12#26#245'4'#3'?'#3
+#173'0_'#192#246#153'9'#232'7f^'#161'V8'#3#174#175'D'#206#207#207#173#140#227
+#19#253'W v'#29'w'#183#183'b'#151#27'k'#141#173'PG'#164'<'#206#206#233#160'm'
+#204'R'#134#154#193'+,'#2'|'#253'(?'#30#180#15#247#198'M'#2#157':4w'#200#246
+'J^'#254'U'#172#205'<PS'#131#204#29'l'#191'>'#15#177'U5'#210#8'C'#2'?L'#209
+#191#151#127#253']'#247#151'S'#169'2'#248#177'Af'#29#204'Ckc'#24#160#215'&'
+#12#247#160#173'Z'#144#178#148'W'#239#131'~'#209' '#157#182#185#152'U'#232
+''''#157'D`'#230#153'v'#2#211#229'Q'#254#211'>(w"'#171#149'Y'#222'A'#231#193
+#5#240'G'#231#170'm'#12#220'['#240#219'(?'#183'2'#215'f'#227#30'\nQ'#247#17
+'fsx'#243'I'#132'_'#222#254#1#178#190'J'#1#137#1#236#23#0#0#0#0'IEND'#174'B`'
+#130
]);
LazarusResources.Add('THSVColorPicker','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#3#10'IDATH'#199#237#213
+'K'#139#28'U'#24#135#241#223#169#174#174#190'U'#247'\23'#153#196#4'Ds'#129'H'
+#196#184#18#220#138'K?'#129#11#23#174'D'#252#6#174'u-'#238#252#22'~'#7#193
+#149#10'FA&'#184#136#8'c'#152'L'#166#167'oU'#221'Uu\t'#2#145'Lb'#162'+'#193
+#23#254#20#156'*'#158#135'S'#231#173'z'#249#175'Wx'#158#135'>'#188#127'#'#142
+#182#167#246#31'_'#147#129#237'p'#231#153#140#244'Y7_'#137'{'#241#154'mA'#207
+#208#200'Hb_'#176'c'#233#158#210#158#185#250#240#181#216#218#255')'#188#176
+#224'z|;n'#137'r'#29'C}C'#153'\0@'#174'6R'#200#205'%'#249'X'#252#238'V'#12'o'
+'~'#31#158'[p#~'#16'w'#144'+'#12'D}='#185#174#161'D.'#26#168#228#10#233'j'
+#198#180'Cv,~'#253'F'#12#239#253#16#254'Vp-~'#26'w'#180'l'#170'm('#13'UzR'#3
+']'#3#169#1#134#150#186#230#194#162#203#180#205#20#142#196'/n'#196#240#201
+#207#225#169#130#203#241#171#184')'#24#137'6'#213#182#212'6'#172#228#26#3#29
+#185#204'P4TH'#203#233'Cx'#194#180#226'tE'#245#135#248#241#245#24#190#252'%'
+#156')'#200']'#144#11'r'#209'H'#180'%'#218'V'#25#169#244'%r'#153#145#168#27
+#23#194#188#187#134'O'#234'5'#252#180'`<'#163':<'#251#21#189'~x;'#182','#244
+'$'#250#162#28'Cljl'#169#140'D'#185#182#190'FR'#206#152#165#15#225'%'''#5#227
+#30''']'#198#221#179#5#199#231#183#189'$j'#11#218#200#208#195'@'#180')'#218
+#22'mHdu'#193'$'#229#164#228'A'#151#227#140#251')G'#173'u'#238'%'#226#213#183
+'b8'#248'6'#252'E'#16#236'H"!'#144#160#133'4'#210#14't"}'#244'$'#146#197')'
+#227#146#7#157'5'#252'8'#227'8'#229#232#177'$'#197#25#135'|'#191#189'&#>'#150
+'&P7'#148'X!['#12#132#249#6#139#5'E'#193#178#160'|t-'#215'kfO'#10'~'#219#9'a'
+#255'v'#140'UB'#133'e'#164#8',"'#167'5'#237#134'~'#139'N'#147'iOF'#204#23#172
+'J'#150'K'#170#138'jE'#189#162#169#132#131'o'#206#238#162#226#144'"YC'#231#13
+#19'd'#13#150#180#19#242#140#188'!]'#244#132#241'h'#221'9'#211#130'E'#249'p'
+#23'%e'#253#244#15'mv'#200#28#179'H'#175'Y'#195#195#10'5'#253#14#211#140'IC'
+#167'h'#233'L'#6#156#140#152#20#235#204#22#204'K'#225#238'g!jb'#144#132''''#4
+#191#190#31#194#224#243#24#179'@Z'#19'WTK'#210#22#155'='#166#233'Z'#208'['
+#210#158'w$'#211#156#147'9'#227#5#147#197#186'e'#241#8#254#212#223#245#173
+#143'b'#220'j'#24#149#156'k'#184#212']'#231'B'#139#243#13#187#21#187#5#189'i'
+')'#140#143'89'#226#232'H8x''<'#247'<'#184#249'n'#140'[5'#23'R.'#247#185#212
+'a?'#176'g-'#216'+97'#163'5'#25's|$'#220#185#18'^x'#224#220#188#26#227#203'9'
+#151'{\L'#217'O8'#143#221#154#221#146#221#5#249#184#150#220'M'#195'?'#26'8?'
+#30#132'p'#229'b'#140#147#222#250#128#167#24#160'W'#145#205'y'#245#247#16#252
+'_'#255#182#254#4'leR'#175#234#10''''#210#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TKColorPicker','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'{IDATH'#199#237#149#177
+#10#192'0'#8'DOp'#138#201'W'#250'/'#249#223'@2'#219#169#144#20':%R'#210#214
+#205#229#158''''#135#2#206'E}#"6+'#216'Z'#27'4'#217#219#193#0'`f_@JiZ'#176
+#148'r'#15#136'1'#250':'#16#17'_'#128#135#131'3R'#6#0#181#214'i'#193'nH'#186
+': U'#181'EC'#219#251'VD'#0#144's'#182#213#231'gXQ'#8'a'#191#152#254#128#15
+#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
+'1`d```'#144#203#221#253#159#22#134'?'#154#236#202#200#2#227'<'#156#228'BU'
+#195#229#243#246'00000'#176#160'x'#167#27'S'#225#255'R'#202',b'#161'u'#28#16
+'eAJz'#1#3#3#3#3#195#156#153#19'p'#178')'#178#0'fXJz'#1#10#155#144#225'$'#5
+#17#178'A'#132#12#197'i'#1#165#17#138#215#2'X'#178#162#153#5't'#201#7#146#23
+'[1'#20'>'#215#175#166'O>@O5TME'#216#210'>2'#159'*'#249#0'W'#18#165'Z>'#160
+'J'#28'P'#26#161'# '#31'006b'#169#16#234#233'S\#''Id'#26'Wjz4'#217#149#17#165
+'N~8'#201#5#171#15#24#25#26#24'a'#236#228#180#252#255#216#138'qd'#195#25#25
+#25#25'1*}b'#193#255#255#255#255'c3'#8'&'#142'n8]'#0#0#198'nf'#182'P'#151#230
+#136#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TmbColorPalette','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#1'^IDATH'#199#237#148#161
+'r'#2'1'#16#134'?f*6.'#231'nep'#224#168#172#197#21'Y'#137'<'#28#18#30#1#28
+''''#235#138'<\%u'#215'G('#174'uE"'#193#17'GE'#174#208'2'#215#153'F'#212't'
+#216#153#136'l6'#255#159#236'7'#9'\'#226#223'G'#163'.'#217#25'>'#28'j'#171
+#253#207'B'#171#249#160'V'#235#170'.)'#192#206'eX'#129'D'#224'y1'#165'S'#142
+'p'#128#243#144#247'r'#246#233#8#12'`'#225#198#23'?'#26#215#26#24#12'F'#8#6#6
+'D'#228'('#222#254'<A%N'#2'l'#136'3@'#192'&'#160#149#9'r'#18'O'#241#136#200
+'I'#220#130#217#154'8'#6#183#163#226#240#178#222#252#26#228#181'S'#158#242'~'
+#4#3#17'6'#143'3'#194#153';4'#251#142#247'bx\o'#246#239'i'#21'+'#20'K'#234
+#149#213'$'#182'E'#6#192#1'-'#188'w'#200'Y'#7#196#128#243')J'#130'EyC'#226#12
+'B'#185#195#7#180#200#25'EAP'#148#20'E'#177#136#217#197'1'#200'f'#203#195'k'
+#4#131#182'S'#230#227'^'#12#3#200#214#25'F'#193#166#144#251#5#229'|'#8#206
+#129'st'#221#29#229'x'#9'(^'#18#198's'#141'm'#145'`,X'#11#146#128#221#2#170
+#199'!'#2#160'a'#145#180#154#199#24'H'#216'+'#10#137'z'#196'K'#16#175'n`}('
+#240#164'@'#18#222'E'#12#131'IQ~'#255#139#246#245#155#191#166#167#131'n'#227
+#242#181'_'#226'o'#226#3'>'#136'Q'#190#246#21'f`'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TmbColorPreview','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#1'3IDATH'#199#237#210'/s'
+#219'@'#20#4#240#159'g'#10'N'#172#208'T'#208#208#208#180#208'e'#22#171#161
+#202#2#221#143#208#143#224#176#22#10'J,'#129#161'a'#133#13'K'#168'a'#152#142
+#189#2'_3v3'#245't&'#164'@'#139#238#221#159#221#183'{'#143#9#19#254'{'#204'N'
+#139'z'#179#143#148'HU'#146'P'#165'J'#130't'#172#211#177'P'#253#201#146#25
+#127'/s6\7/'#188#239'N'#239#165#196#207#238#234'M'#29#127#252'<'#252#253'p'
+#217'~'#11#8#251#8'u'#132'e'#132'>F'#17#157#136#149#8')'#194'.'#194'c'#132'x'
+#12#177#11'1'#143'E'#136'}'#136'u'#219#199')'#231#185#3#132'>'#248'ZvZ3'#205
+#236'FD'#143'{'#216'`'#139#250#128#1#183#230#14#182'h0'#140#231'M'#159#9#28#3
+#255#142#7#236#176#245#195'U\'#227#22'>'#20#242'e'#198#29'z'#201#131#166#232
+#206#159'^'#167'r&P'#169#10'U'#139#214#147#247'z'#220' /'#240#9'k'#133#188
+#195#189'u'#209'\<'#23'C'#242#5#7#20#134#214#179#218'P'#222#28#230'E'#179'Q'
+#130#26'p'#247'bh'#165#244#213'1'#214#23'&`'#189#235#227#173'Xm'#186#203#159
+#220'|'#25#254'i'#222'e'#178','#151'D'#242#248':'#158#9#19'&'#28#241#11#242
+'&'#180#220't'#165#184'7'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TmbColorTree','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#252'IDATH'#199#197'U1'
+#14#194'0'#12'<K}'#4']'#202#19#248#4#188#132#138'N@'#23'&f&'#22#4#19#18'?)'
+#159'`'#224#1'0$'#252#194'L'#166'IZJ'#219#208#214'RT;'#141#238'd'#159#157#0
+#29#27#1'@'#180#204#184#11#240#231'iF'#129#4#143#227#244#175#224#227#213#21#0
+#16'X'#233#236#139#7'y'#227'G'#20't'#173'A-'#130'8I'#1#0#151#243#225#171'ODy'
+#214#204#205#8#4',NR'#203#151#127#2'JD'#22'x'#163#18#9#144#235'[z1W'#151#200
+'W'#208'J'#13#164#173':#'#232'e'#14#194#219#174'pPO'#182#253#204#129#219'5n'
+#12#160'}'#23#149#245#190#25#155's'#224#146#4#190'-j'#206#193#240'W'#133#175
+#160#149#4'/'#173#135#185#236'Fa'#216#18#250#158#187#209'2c'#173'T'#233'bf'
+#158'/'#214#172#149#170#245#21#179'^I!'#248'h'#225#16#180'1+'#25#247'M'#22'p'
+'7'#233'_'#25'pI'#175'R'#147#170#154#0'd'#188'0'#178'o'#238#245'fo'#241'7'#20
+#19#9#221#163#161#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TmbDeskPickerButton','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#1#202'IDATH'#199#237#147
+'-p'#226'P'#20#133'?f*'#222's['#137#220'uHp '#193#165'.8'#144'Y'#151':'#214
+'%'#18'I]'#227#136'L'#29#184#224#130'l]+'#215'ue'#234'R'#151#231#238#138#132
+#148#0#195#176#133'5;{f2y'#247#230#190's'#238'_'#224'?v'#224#205#18#241'f'
+#137#252#21#242#201'4'#17#17#145#201'4'#145#201#244'B"'#142#23#11#128#235#197
+'""'#226'z'#177#184'^"'#174'w'#1#129#209#164' u'#182#222#155'g'#19#211#248','
+#185#237#198#178#184#183'*{|'#187#170#206#15#193'M'#227'l'#1#0#219'Y'#8#170
+#238'['#6#195#26#231#167#5',g!'#241#220#230#230#251'r'#239#219'*'#28#158'WA'
+#127#20'I'#18#141'*{0'#254#16'Y?'#12#207#234#10'];'#146'mt'#237'H6'#254#179
+#183#166'm'#213#201#219'Vt'#185#31#170#213#159#215#200'['#214#252'$'#242#6
+#192'W'#251'^'#148#2#165#21#10#208'J'#23#203#161#10#251#229'%'#227'5q'#170'K'
+#223#6'!'#253'n'#19#12#228#165#207#24#179#183'A'#0'W%'#15#241#221#248'`'#6#3
+';'#226#245#209#253' '#239#133'$'#203#225'^'#220#173#191'>x'#191#16#208#138
+#183','#195#15#158#152#186#221'Z@'#190'un'#246#2#150#161#197'['#150#157#220
+#218'B'#0#248#149#26#0#166#225#19'c'#171#13#128#251'cM'#246#236#210#236#4#0
+#220#205#250'U'#220'.L~D'#0#5#233#251';'#10'P('#22#171#159#244'zM|'#191#195
+'u'''#192#247';@'#17#243#167#184#2#208'h'#178',/'#134#1#180'Z_H'#179'"%'#199
+'i'#145#166#167#180#196#28#169#160#132'*'#201#141#169'_2'#7'xv'#233'rsl'#6'J'
+'q'#173'5'#189#142#198#0'Z'#151#227#205#21'y)'#188'+'#169#142#230'}`'#200#143
+#207'i'#217'!'#133'>P}'#190'u6'#152#170#202'b'#184#134#127#23#191#1'O'#251
+#234'E4'#251#146#172#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TmbOfficeColorDialog','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#1#219'IDATH'#199#181'U-{'
+#194'0'#16'~'#251'<'#136#139'+'#14#203#28#252#4'dq'#212#129#219'dq'#240#19
+#248#9#200#204'ev'#174's'#212#21#9#142#185'Mb'#145's'#156#235'D'#210#210#134
+#244'c'#207#30#206#164'M.'#247#222#189'w'#151#3#30',^'#254'!'#229'5c'#214#223
+#249'z'#189'V'#255#153#169#229#252#182#238#247#158'W'#0'Hy'#205#0' '#152'i'
+#141#228#131#156'F'#244#158#27'$'#218'0^7'#132#152'C'#132#216#21' ='#0' 2'
+#168#201#205#176'K'#180#30#3#160#226#142#16#26'DPYI/E'#4'J'#233#8'\'#161#214
+'SA'#173'T%'#137#137'@'#8'`>'#255'['#242'r'#15#235'$'#12#245#218#171'^",'#151
+#211#138#162'R'#169's'#207#150#178#142'Ri'#225'@'#207'V'#178'/w'#221#171#147
+'^'#151'p'#237#8'\'#30#219#128#206#8'\'#210#230#233'r9'#5'3c'#189#14#157'w'
+#12#0#23#245']'#150''''#179#235'Ot!'#164'%,'#207#3#178#236#31#20#229#198#203
+#229#189'X'#0'q'#236'6$'#229#14' *'#244#133#176'('#226'R'#135#141'_'#199#198
+'8'#225#180':'#1#7#224#18#190#3'D'#184#172#9#3'9s'#163'0'#223'y'#235#204#1
+#129'@vX>'#1#162#157#18'f'#6#17'U'#147'l'#219':'#173'N'#0#166#134#160#5#240
+'B'#24#8#161#21#165#236#4#146#147#219'PE'#169'6'#14#210#132'v4^'#130#233'R'
+#166'&'#163#234#254#164#173#130'*'#20#9#139#219#253'y'#15#0#8#134#1'~.'#223
+#136'w'#159'8'#30#223#160'T'#10'O?'#243#200','#4#26#14#181'!'#223#7#31#14#205
+'I'#174#228'v0B'#20#141#16'E'#207#205#138#253#190'v'#219#184#222#216#201#193
+'0'#168#181#147#213'p3'#241#191#10#156#24'\'#223'h'#174'w'#167#139#244#251'&'
+'b'#31#245'}'#176#221#198#141'Ykz'#19#227#184':'#10#239':'#249'|Fe\'#218'S'
+#10#224#187#161#159#235#241#173'*'#27'G'#238'C'#228#23#239'+'#214'l'#163#233
+#136#170#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TMColorPicker','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'gIDATH'#199'c`'#160'1`'
+'D'#230#252#23#253#255#159'b'#3'_3'#162#152#201'Bk'#31#208#217#2#30'*'#152
+#248#154#214#22#224#245#1#247'P'#8'"'#28#201#20#146'<_Q'#193'D1T'#179#145'}'
+#192#248#191#136#10#249#128#129#145#17#238#224'a'#21'D'#140#12#12#12#12#255
+#167'R-'#136#6'*'#153#14#197'|0j'#193'h$'#211#203#2'F'#134#193#11#0#179'O'#17
+#244'Y'#169#152#229#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TRAxisColorPicker','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#1'=IDATH'#199'c`'#160'1`'
+'d```'#248#255#155#229'?'#3#3#15#3'*'#230#134'b^'#28'l|j!'#226#140#172'l'#140
+','#12#12#12#12#12'_h'#231#3':Y'#240#149#214#22'|'#30'@'#31'<{'#243#157#129
+#135#147#141#129#143#155#202#22#188#250#240#155#193#169#234#16#195#187#207
+#127#25#190'|'#255#195#224'm'#170#200'0+'#207#143#129#151#147#155#242' z'#245
+#233#15#131'z'#225#5#134#195#13#150#12':'#178'R'#12#12#12#220#12#229#203'.0'
+#132#183#172'g'#216'V'#145'D'#185#15#234#150'>eh'#15'Rd'#208#17#226#133#203
+'u'#250'[38vmb'#216#127#246#30#131#163#134'.e'#22'<z'#253#139#193'O'#147#3'C'
+'\'#130#155#155#225#197#171'/'#12#12#178#20#230#3']'#17'N'#134'5'#167'_3x'
+#201'!L'#250#252#243#23#195#214#171'w'#24'f'#250#134#144#148'o'#176'Z'#208'i'
+'#'#195#224#187#234'>C'#252#242#139#12'N'#10'2'#12#239#190'30,'#184't'#151'!'
+#211#208#136#129#239'7;'#3#195'o*'#228#228#205'^:'#12#11#175#191'g'#216'w'
+#231'%'#131#16';7'#195'"'#23'W'#6'}'#17'E'#146's='#222'|'#16'/'''#195#16'/'
+#135'T'#192'}'#29'-*FK'#211#129#13#162#255'4'#13'"F'#134'!'#11#0'i'#226'f'
+#134#237#131#128'6'#0#0#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TRColorPicker','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#143'IDATH'#199'c`'#160
+'1`$V'#225#239#170#170#255#164#24#204#218#214#198#200#192#192#192#192'B'#172
+#134'/d'#250'`'#240'X'#240#149#214#22'|'#166#212#130'5+f'#194'#1$"'#157#145
+#170'>X'#179'b'#230#255#224#240'4'#184#224#26#6#134#255#232#150'P5'#136#130
+#195#211'0,'#249'L'#237'8@'#183#132'&'#145#140'l'#9'M,X'#187'r'#22'<'#194#169
+#158#15#144#13#167#186#5#232#134'SlAHD:'#227#26#6#6#218#229#3'\'#134#14#173
+#162'b'#192#11#187#209' '#26#186'U&'#205#1#0'C'#2'<{?'#184#187'_'#0#0#0#0'IE'
+'ND'#174'B`'#130
]);
LazarusResources.Add('TSColorPicker','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#140'IDATH'#199#237#146
+'1'#10#3'!'#16'E'#159#144'-'#236#4'At'#147#173#189#136'7'#245#26#150'^'#198
+#206'e'#3#150#166'X'#2#233#146#144'l'#147#248#154#153#15#195'|'#254'00'#248
+'y'#196#179#1#239'}/'#165'PkE)'#133'1'#134#249'<'#179'\'#22'b'#140#226'c'#3#0
+#231'\o'#173'!'#165'Dk'#141#181#150#148#146#248'J'#130#199'$'#211'4'#161#148
+'"'#231','#14#185'g'#8#161#255#241#23#245#190'v'#216#128'+{'#189#247#239#234
+'m_,V'#1'p::'#193'0'#24#6#131#193#11#220#0']'#214','#236#161'*'#153#199#0#0#0
+#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TSLColorPicker','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#1#143'IDATH'#199#221#148
+'-w'#194'0'#20#134#31#206#153#232'~'#194'$'#146'J'#28'H*+'#145#200#225#138#27
+#18'9'#139'c'#14#228'$'#18#217#202#226#192#129#156#156'l\'#174'c'#130#211#144
+#182#233#199#228'v#'#146'&'#233#251'qs'#207#133#191#30#189'|'#161#181#190')'
+#20#26#141'B!'#8#25'Ya'#254#213#249#179#244#0#158'r'#2'%'#238#159#237#161#209
+#8'r'#23#132#6'0'#223#229'9'#15'C'#160'3]'#1'*'#175#237#209#4#234'$P'#162#12
+'`'#238#162'Ld'#196'8'#156#148#215#21#2'Q'#197#180'4'#185#200'U'#219#202#235
+'\'#24#130'L'#187#193#203'oa'#171'w'#17'5:'#232#10#238'J[+A&'#237'`mj'#155#29
+'d'#237#224'vZ'#186#10'xT'#145'R'#5' '#23'x'#29'a'''#7'Z'#235'J'#149'D'#175
+#17#131#151#1#215#239'+'#171#221#170#150#176#28#246'^'#193#129'm'#127#183#217
+#225#225#17'.B'#14#155#3#251#247'='#147#197#196'Y=M'#143#253'x'#3'yT'#197#242
+'my'#7#159#135#8'B0'#15#136#183'1'#235'hM'#180#142#10#10#203'-'#163#190#138
+#178#204'\'#28#244#7#4#211#160#0'0'#156#14'I?SS'#12#174#148#184'H'#10#14#242
+#11#231#235#153'x'#31'3'#12#135#230#226#233'p'#226'x>"'#210#158#22'g'#187#30
+#141'F7[E'#154#164'x'#158#135'?'#246#185#164#23'D'#4#127#226#215#166#165#178
+'>'#210#171'u'#0#224#143'}'#182#31'[N'#201#137#228#152'0'#139'f'#181#149#210
+#212#147#140#131'~'#191#127'k'#234#138'm'#229'X'#217#251'*9'#200#31#25#0#143
+'N`]'#206#11')'#178'n'#255#26#232#255#198#15'y'#189#200#229#17'+'#148'C'#0#0
+#0#0'IEND'#174'B`'#130
]);
LazarusResources.Add('TSLHColorPicker','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#2'cIDATH'#199#237#149'!T'
+'#1'#16#134#191'}'#175'"'#184#226'8y'#178'8'#144#149#135'ke'#229'J'#234#192
+#29#18#137'<\%'#200#226'*'#139'c'#229#213#129#187#202#147#212'%.'#191#235#137
+'d'#147#236'R'#222#249'{'#23#147'd'#178#249'g'#254#127'f'#178#240#127#252'eT'
+#0#222#239#247'N'#194#3'N o'#176#206#225'0x@'#2#231#193#11'\'#220#251'h'#19
+'`'#21'l'#24#195#246#186#170#246'g''{'#222#161#218#237#170#1#128#147#203#23#4
+'V'#226#221'Z'#4#192'1N'#17'$'#130#219#246#187#214'y'#180#153#163#24#246#183
+']'#152#239'a'#0#224#173#13#145#23#151#0#16#8#139'W\{'#18#163#246#27#137'h'
+#12#193#0'P'#155#176#191#23#145#129#144#20#162#140#209#169#0#18#193'N\S8'#164
+#216#183#195#157#229#253#0'@'#206'%'#218#165#166#130#142'=1'#1#188#207' >1'
+#14#139#231'"'#201#3#0#235'=rJ'#242#180#17#251#130'I'#146#166#136'Z%'#163'b,'
+#251#14#228'\'#150#167#7'H'#187'>t'#214#130'G'#167'GX'#0#26'L:'#12#12'$d}'
+#146#135'X'#174#208#211#249#208#220'9o'#203'h'#18#231#167#200#192'Z'#156#148
+'%'#241#133#230't'#147#222'aC'#150#17#1#166#245':'#235'9'#144#240'V'#9#228
+#242'j'#194#232#203#136#237#251#150#187#251#231#156#228'B'#166'4'#202'rM'#180
+'&'#189'$G'#6#18','#22'w'#24#12#179#249#13#171#135#31','#23'#'#166#245#237#7
+#221#197#1#169'L'#212#190'1'#189'2'#149#144#19'W'#223'/'#3'x}'#141#128#139
+#217'5/'#171#5'w'#183'3'#174'n'#150#185#228#149'1s'#142#4#12'[eRnB'#163'9'
+#135#181#158#209#215#17#211'Y'#157'4'#245#192'xZ'#211#172#30'A'#139#220'O>'
+#231#182','#209#212#15#235'^'#163'y'#239#145#28'o'#219'7'#214#171'%'#227#139
+'i'#186#251#250#178'f'#243#182'A'#222'u'#28''''#236'R'#174#232'a'#236#130#189
+'i_'#211#201'd'#178#183#177'>'#155'f'#141'1'#134#211#241#5#191'~'#190' '#137
+#211#241'4!'#246#171#182't0<1'#236'6'#207#213#131#217#239#17#204#169#170#156
+#3#133#215#243#252'|'#204#226#241#7#175#205#154'f'#211'0'#191#188#9#160#250
+#160'H'#17'y'#203#198't'#138't'#222#169'"'#231#210#197#186#158'wZ?%'#242#16
+'x'#167#249'B'#146#135#252#238#150#169's.'#228#225#224#237'OM'#249#236'C'#151
+'?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'\`<J'#151#222#173'wp'
+#237#178#7#241#18'n'#132#216#233't'#146#214#137#139#142#168#168#139'*'#130'8'
+#253#224#241'H'#8#191'G'#194#131#192#194#191'G'#204'9l'#173#205'!'#4#172#181
+'8'#231#216'l6x'#239#241#222'S'#215#245#167#179#244#156#128#16#130#176#214
+#230#178',1'#198#160#181'FJ'#245#229#240#217'7xa{'#181#205#235#203'5'#206'9'
+#154#166#17#191#242#182'UU'#229'3k'#209#245#205#152'o'#239'zV'#185#133#184
+#131#225'q'#242#216'Bj'#223#248#238#253':'#181#144'^'#247#186#135'{'#136'A|h'
+#209'p'#156#188'K'#25#210'qR|:i'#132'8@'#26' '#166#147'"'#164#8#233#0#177#135
+#212'C'#220#255#172#166#223'a'#9#248'C'#1'FN'#190'*'#4'd'#9'B'#2'j'#146#208
+' '#12'H'#3#162#0'Y'#128',A%P'#23#160'F'#208'#'#168#145#238#208'._'#200#185
+#241#12'o'#213'fM'#147#161'f;'#0#0#0#0'IEND'#174'B`'#130
]);

View File

@ -0,0 +1,51 @@
unit mbReg;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
procedure Register;
implementation
//{$R mbReg.res}
uses
RColorPicker, GColorPicker, BColorPicker,
RAxisColorPicker, GAxisColorPicker, BAxisColorPicker,
CColorPicker, YColorPicker, MColorPicker, KColorPicker,
HRingPicker,
HColorPicker, SColorPicker, LColorPicker, VColorPicker,
HSColorPicker, HSVColorPicker, HSLColorPicker, HSLRingPicker,
SLColorPicker, SLHColorPicker,
CIEAColorPicker, CIEBColorPicker, CIELColorPicker,
HexaColorPicker, mbColorPreview, mbColorList, mbColorTree, mbColorPalette,
mbOfficeColorDialog, mbDeskPickerButton,
LResources;
procedure Register;
begin
RegisterComponents('mbColor Lib', [
TRColorPicker, TGColorPicker, TBColorPicker,
TRAxisColorPicker, TGAxisColorPicker, TBAxisColorPicker,
TCColorPicker, TYColorPicker, TMColorPicker, TKColorPicker,
THRingPicker,
THColorPicker, TSColorPicker, TLColorPicker, TVColorPicker,
THSColorPicker, THSVColorPicker, THSLColorPicker, THSLRingPicker,
TSLColorPicker, TSLHColorPicker,
TCIEAColorPicker, TCIEBColorPicker, TCIELColorPicker,
THexaColorPicker, TmbColorPreview, TmbColorList, TmbColorTree, TmbColorPalette,
TmbOfficeColorDialog, TmbDeskPickerButton]);
end;
{$IFDEF FPC}
initialization
{$I mbReg.lrs}
{$ENDIF}
end.

View File

@ -9,157 +9,153 @@ interface
{$I mxs.inc} {$I mxs.inc}
uses uses
{$IFDEF FPC}LCLIntf, LCLType, LMessages, {$IFDEF FPC}
{$ELSE} Windows, Messages, LCLIntf, LCLType, LMessages,
{$ENDIF} {$ELSE}
SysUtils, Classes, Controls, Graphics, Forms, Windows, Messages,
{$IFDEF DELPHI_7_UP} Themes, {$ENDIF} ExtCtrls, PalUtils, mbBasicPicker; {$ENDIF}
SysUtils, Classes, Controls, Graphics, Forms,
{$IFDEF DELPHI_7_UP} Themes, {$ENDIF} ExtCtrls, PalUtils, mbBasicPicker;
const const
TBA_Resize = 0; TBA_Resize = 0;
TBA_Paint = 1; TBA_Paint = 1;
TBA_MouseMove = 2; TBA_MouseMove = 2;
TBA_MouseDown = 3; TBA_MouseDown = 3;
TBA_MouseUp = 4; TBA_MouseUp = 4;
TBA_WheelUp = 5; TBA_WheelUp = 5;
TBA_WheelDown = 6; TBA_WheelDown = 6;
TBA_VKUp = 7; TBA_VKUp = 7;
TBA_VKCtrlUp = 8; TBA_VKCtrlUp = 8;
TBA_VKDown = 9; TBA_VKDown = 9;
TBA_VKCtrlDown = 10; TBA_VKCtrlDown = 10;
TBA_VKLeft = 11; TBA_VKLeft = 11;
TBA_VKCtrlLeft = 12; TBA_VKCtrlLeft = 12;
TBA_VKRight = 13; TBA_VKRight = 13;
TBA_VKCtrlRight = 14; TBA_VKCtrlRight = 14;
TBA_RedoBMP = 15; TBA_RedoBMP = 15;
type type
TTrackBarLayout = (lyHorizontal, lyVertical); TTrackBarLayout = (lyHorizontal, lyVertical);
TSliderPlacement = (spBefore, spAfter, spBoth); TSliderPlacement = (spBefore, spAfter, spBoth);
TSelIndicator = (siArrows, siRect); TSelIndicator = (siArrows, siRect);
TmbTrackBarPicker = class(TmbBasicPicker) TmbTrackBarPicker = class(TmbBasicPicker)
private private
mx, my: integer; mx, my: integer;
FOnChange: TNotifyEvent; FOnChange: TNotifyEvent;
FIncrement: integer; FIncrement: integer;
FHintFormat: string; FHintFormat: string;
FLayout: TTrackBarLayout; FPlacement: TSliderPlacement;
FPlacement: TSliderPlacement; FNewArrowStyle: boolean;
FNewArrowStyle: boolean; Aw, Ah: integer;
Aw, Ah: integer; FDoChange: boolean;
FDoChange: boolean; FSelIndicator: TSelIndicator;
FSelIndicator: TSelIndicator; FWebSafe: boolean;
FWebSafe: boolean; FBevelInner: TBevelCut;
FBevelInner: TBevelCut; FBevelOuter: TBevelCut;
FBevelOuter: TBevelCut; FBevelWidth: TBevelWidth;
FBevelWidth: TBevelWidth; FBorderStyle: TBorderStyle;
FBorderStyle: TBorderStyle;
procedure SetBevelInner(Value: TBevelCut); procedure SetBevelInner(Value: TBevelCut);
procedure SetBevelOuter(Value: TBevelCut); procedure SetBevelOuter(Value: TBevelCut);
procedure SetBevelWidth(Value: TBevelWidth); procedure SetBevelWidth(Value: TBevelWidth);
procedure SetBorderStyle(Value: TBorderStyle); procedure SetBorderStyle(Value: TBorderStyle);
procedure SetWebSafe(s: boolean); procedure SetWebSafe(s: boolean);
function XToArrowPos(p: integer): integer; function XToArrowPos(p: integer): integer;
function YToArrowPos(p: integer): integer; function YToArrowPos(p: integer): integer;
procedure SetLayout(Value: TTrackBarLayout); procedure SetLayout(Value: TTrackBarLayout);
procedure SetNewArrowStyle(s: boolean); procedure SetNewArrowStyle(s: boolean);
procedure SetPlacement(Value: TSliderPlacement); procedure SetPlacement(Value: TSliderPlacement);
procedure DrawMarker(p: integer); procedure DrawMarker(p: integer);
procedure SetSelIndicator(Value: TSelIndicator); procedure SetSelIndicator(Value: TSelIndicator);
procedure CalcPickRect; procedure CalcPickRect;
protected protected
FArrowPos: integer; FArrowPos: integer;
FManual: boolean; FManual: boolean;
FChange: boolean; FChange: boolean;
FPickRect: TRect; FPickRect: TRect;
FLimit: integer; FLayout: TTrackBarLayout;
FLimit: integer;
procedure CreateGradient; override;
procedure Paint; override;
procedure DrawFrames; dynamic;
procedure Resize; override;
procedure CreateWnd; override;
procedure Execute(tbaAction: integer); dynamic;
function GetArrowPos: integer; dynamic;
function GetHintStr: string;
function GetSelectedValue: integer; virtual; abstract;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW;
procedure WheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
procedure WheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
{$IFDEF DELPHI}
procedure CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN;
procedure CMGotFocus(var Message: TCMGotFocus); message CM_ENTER;
procedure CMLostFocus(var Message: TCMLostFocus); message CM_EXIT;
{$ELSE}
procedure CNKeyDown(var Message: TLMKeyDown); message CN_KEYDOWN;
procedure CMGotFocus(var Message: TLMessage); message CM_ENTER;
procedure CMLostFocus(var Message: TLMessage); message CM_EXIT;
{$ENDIF}
procedure CreateGradient; override; public
procedure Paint; override; constructor Create(AOwner: TComponent); override;
procedure DrawFrames; dynamic; destructor Destroy; override;
procedure Resize; override; property Manual: boolean read FManual;
procedure CreateWnd; override;
procedure Execute(tbaAction: integer); dynamic;
function GetArrowPos: integer; dynamic;
function GetHintStr: string;
function GetSelectedValue: integer; virtual; abstract;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW; published
procedure WheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); property BevelInner: TPanelBevel read FBevelInner write SetBevelInner default bvNone;
procedure WheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); property BevelOuter: TPanelBevel read FBevelOuter write SetBevelOuter default bvNone;
{$IFDEF DELPHI} property BevelWidth: TBevelWidth read FBevelWidth write SetBevelWidth default 1;
procedure CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN; property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsNone;
procedure CMGotFocus(var Message: TCMGotFocus); message CM_ENTER; property HintFormat: string read FHintFormat write FHintFormat;
procedure CMLostFocus(var Message: TCMLostFocus); message CM_EXIT; property Increment: integer read FIncrement write FIncrement default 1;
{$ELSE} property Layout: TTrackBarLayout read FLayout write SetLayout default lyHorizontal;
procedure CNKeyDown(var Message: TLMKeyDown); message CN_KEYDOWN; property ArrowPlacement: TSliderPlacement read FPlacement write SetPlacement default spAfter;
procedure CMGotFocus(var Message: TLMessage); message CM_ENTER; property NewArrowStyle: boolean read FNewArrowStyle write SetNewArrowStyle default false;
procedure CMLostFocus(var Message: TLMessage); message CM_EXIT; property SelectionIndicator: TSelIndicator read FSelIndicator write SetSelIndicator default siArrows;
{$ENDIF} property WebSafe: boolean read FWebSafe write SetWebSafe default false;
property TabStop default true;
public property ShowHint;
constructor Create(AOwner: TComponent); override; property Color;
destructor Destroy; override; property ParentColor;
property Manual: boolean read FManual; {$IFDEF DELPHI_7_UP}{$IFDEF DELPHI}
property ParentBackground default true;
published {$ENDIF}{$ENDIF}
property BevelInner: TPanelBevel read FBevelInner write SetBevelInner default bvNone; property ParentShowHint default true;
property BevelOuter: TPanelBevel read FBevelOuter write SetBevelOuter default bvNone; property Anchors;
property BevelWidth: TBevelWidth read FBevelWidth write SetBevelWidth default 1; property Align;
property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsNone; property Visible;
property Enabled;
property HintFormat: string read FHintFormat write FHintFormat; property PopupMenu;
property Increment: integer read FIncrement write FIncrement default 1; property TabOrder;
property Layout: TTrackBarLayout read FLayout write SetLayout default lyHorizontal; property DragCursor;
property ArrowPlacement: TSliderPlacement read FPlacement write SetPlacement default spAfter; property DragMode;
property NewArrowStyle: boolean read FNewArrowStyle write SetNewArrowStyle default false; property DragKind;
property SelectionIndicator: TSelIndicator read FSelIndicator write SetSelIndicator default siArrows; property Constraints;
property WebSafe: boolean read FWebSafe write SetWebSafe default false; property OnChange: TNotifyEvent read FOnChange write FOnChange;
property TabStop default true; property OnContextPopup;
property ShowHint; property OnMouseDown;
property Color; property OnMouseMove;
property ParentColor; property OnMouseUp;
{$IFDEF DELPHI_7_UP} property OnMouseWheel;
{$IFDEF DELPHI} property OnMouseWheelUp;
property ParentBackground default true; property OnMouseWheelDown;
{$ENDIF} property OnKeyDown;
{$ENDIF} property OnKeyPress;
property ParentShowHint default true; property OnKeyUp;
property Anchors; property OnDragDrop;
property Align; property OnDragOver;
property Visible; property OnEndDrag;
property Enabled; property OnEnter;
property PopupMenu; property OnExit;
property TabOrder; property OnResize;
property DragCursor; property OnStartDrag;
property DragMode; end;
property DragKind;
property Constraints;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnContextPopup;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnMouseWheel;
property OnMouseWheelUp;
property OnMouseWheelDown;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnResize;
property OnStartDrag;
end;
implementation implementation
@ -178,23 +174,14 @@ const
BDR_OUTER = 3; BDR_OUTER = 3;
BDR_INNER = 12; BDR_INNER = 12;
BDR_RAISED = 5;
BDR_SUNKEN = 10;
{ Border flags } { Border flags }
BF_LEFT = 1; BF_LEFT = 1;
BF_TOP = 2; BF_TOP = 2;
BF_RIGHT = 4; BF_RIGHT = 4;
BF_BOTTOM = 8; BF_BOTTOM = 8;
BF_TOPLEFT = (BF_TOP or BF_LEFT);
BF_TOPRIGHT = (BF_TOP or BF_RIGHT);
BF_BOTTOMLEFT = (BF_BOTTOM or BF_LEFT);
BF_BOTTOMRIGHT = (BF_BOTTOM or BF_RIGHT);
BF_RECT = (BF_LEFT or BF_TOP or BF_RIGHT or BF_BOTTOM); BF_RECT = (BF_LEFT or BF_TOP or BF_RIGHT or BF_BOTTOM);
BF_DIAGONAL = $10;
{TmbTrackBarPicker} {TmbTrackBarPicker}
@ -410,29 +397,29 @@ end;
procedure TmbTrackBarPicker.DrawFrames; procedure TmbTrackBarPicker.DrawFrames;
var var
flags: cardinal; flags: cardinal;
R: TRect; R: TRect;
i: integer; i: integer;
begin begin
flags := 0; flags := 0;
if (FBorderStyle = bsNone) or (FBevelWidth = 0) then Exit; if (FBorderStyle = bsNone) or (FBevelWidth = 0) then Exit;
case FBevelInner of case FBevelInner of
bvNone: flags := 0; bvNone: flags := 0;
bvRaised: flags := BDR_RAISEDINNER; bvRaised: flags := BDR_RAISEDINNER;
bvLowered: flags := BDR_SUNKENINNER; bvLowered: flags := BDR_SUNKENINNER;
bvSpace: flags := BDR_INNER; bvSpace: flags := BDR_INNER;
end; end;
case FBevelOuter of case FBevelOuter of
bvRaised: flags := flags or BDR_RAISEDOUTER; bvRaised: flags := flags or BDR_RAISEDOUTER;
bvLowered: flags := flags or BDR_SUNKENOUTER; bvLowered: flags := flags or BDR_SUNKENOUTER;
bvSpace: flags := flags or BDR_OUTER; bvSpace: flags := flags or BDR_OUTER;
end; end;
R := FPickRect; R := FPickRect;
InflateRect(R, -FBevelWidth + 1, -FBevelWidth + 1); InflateRect(R, -FBevelWidth + 1, -FBevelWidth + 1);
for i := 0 to FBevelWidth do for i := 0 to FBevelWidth do
begin begin
DrawEdge(Canvas.Handle, R, flags, BF_RECT); DrawEdge(Canvas.Handle, R, flags, BF_RECT);
InflateRect(R, 1, 1); InflateRect(R, 1, 1);
end; end;
end; end;
@ -520,7 +507,7 @@ begin
Canvas.Polygon([Point(x, y), Point(x - 4, y + 4), Point(x - 4, y + 6), Canvas.Polygon([Point(x, y), Point(x - 4, y + 4), Point(x - 4, y + 6),
Point(x - 3, y + 7), Point(x + 3, y + 7), Point(x + 4, y + 6), Point(x - 3, y + 7), Point(x + 3, y + 7), Point(x + 4, y + 6),
Point(x + 4, y + 4) ]); Point(x + 4, y + 4) ]);
y := Aw; y := Aw;
if not FNewArrowStyle then if not FNewArrowStyle then
Canvas.Polygon([Point(x, y), Point(x - 4, y - 6), Point(x +4, y - 6) ]) Canvas.Polygon([Point(x, y), Point(x - 4, y - 6), Point(x +4, y - 6) ])
else else
@ -655,105 +642,105 @@ end;
procedure TmbTrackBarPicker.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure TmbTrackBarPicker.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin begin
{$IFDEF DELPHI} {$IFDEF DELPHI}
ClipCursor(nil); ClipCursor(nil);
{$ENDIF} {$ENDIF}
if Button <> mbLeft then Exit; if Button <> mbLeft then
mx := x; exit;
my := y; mx := x;
if FLayout = lyHorizontal then my := y;
FArrowPos := XToArrowPos(x) if FLayout = lyHorizontal then
else FArrowPos := XToArrowPos(x)
FArrowPos := YToArrowPos(y); else
Execute(TBA_MouseUp); FArrowPos := YToArrowPos(y);
FManual := true; Execute(TBA_MouseUp);
FDoChange := true; FManual := true;
Invalidate; FDoChange := true;
inherited; Invalidate;
inherited;
end; end;
procedure TmbTrackBarPicker.CNKeyDown( procedure TmbTrackBarPicker.CNKeyDown(
var Message: {$IFDEF FPC}TLMKeyDown{$ELSE}TWMKeyDown{$ENDIF}); var Message: {$IFDEF FPC}TLMKeyDown{$ELSE}TWMKeyDown{$ENDIF});
var var
Shift: TShiftState; Shift: TShiftState;
FInherited: boolean; FInherited: boolean;
begin begin
FInherited := false; FInherited := false;
Shift := KeyDataToShiftState(Message.KeyData); Shift := KeyDataToShiftState(Message.KeyData);
case Message.CharCode of case Message.CharCode of
VK_UP: VK_UP:
begin begin
if FLayout = lyHorizontal then if FLayout = lyHorizontal then
begin begin
inherited; inherited;
Exit; Exit;
end; end;
FChange := false; FChange := false;
if not (ssCtrl in Shift) then if not (ssCtrl in Shift) then
Execute(TBA_VKUp) Execute(TBA_VKUp)
else
Execute(TBA_VKCtrlUp);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end;
VK_LEFT:
begin
if FLayout = lyVertical then
begin
inherited;
Exit;
end;
FChange := false;
if not (ssCtrl in Shift) then
Execute(TBA_VKLeft)
else
Execute(TBA_VKCtrlLeft);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end;
VK_RIGHT:
begin
if FLayout = lyVertical then
begin
inherited;
Exit;
end;
FChange := false;
if not (ssCtrl in Shift) then
Execute(TBA_VKRight)
else
Execute(TBA_VKCtrlRight);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end;
VK_DOWN:
begin
if FLayout = lyHorizontal then
begin
inherited;
Exit;
end;
FChange := false;
if not (ssCtrl in Shift) then
Execute(TBA_VKDown)
else
Execute(TBA_VKCtrlDown);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end
else else
Execute(TBA_VKCtrlUp); begin
FManual := true; FInherited := true;
FChange := true; inherited;
if Assigned(FOnChange) then FOnChange(Self); end;
end; end; // case
VK_LEFT: if not FInherited and Assigned(OnKeyDown) then
begin OnKeyDown(Self, Message.CharCode, Shift);
if FLayout = lyVertical then
begin
inherited;
Exit;
end;
FChange := false;
if not (ssCtrl in Shift) then
Execute(TBA_VKLeft)
else
Execute(TBA_VKCtrlLeft);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end;
VK_RIGHT:
begin
if FLayout = lyVertical then
begin
inherited;
Exit;
end;
FChange := false;
if not (ssCtrl in Shift) then
Execute(TBA_VKRight)
else
Execute(TBA_VKCtrlRight);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end;
VK_DOWN:
begin
if FLayout = lyHorizontal then
begin
inherited;
Exit;
end;
FChange := false;
if not (ssCtrl in Shift) then
Execute(TBA_VKDown)
else
Execute(TBA_VKCtrlDown);
FManual := true;
FChange := true;
if Assigned(FOnChange) then FOnChange(Self);
end
else
begin
FInherited := true;
inherited;
end;
end;
if not FInherited then
if Assigned(OnKeyDown) then
OnKeyDown(Self, Message.CharCode, Shift);
end; end;
procedure TmbTrackBarPicker.CMHintShow(var Message: TCMHintShow); procedure TmbTrackBarPicker.CMHintShow(var Message: TCMHintShow);
@ -811,11 +798,16 @@ begin
if Assigned(FOnChange) then FOnChange(Self); if Assigned(FOnChange) then FOnChange(Self);
end; 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 !!! }
procedure TmbTrackBarPicker.SetLayout(Value: TTrackBarLayout); procedure TmbTrackBarPicker.SetLayout(Value: TTrackBarLayout);
begin begin
if FLayout <> Value then if FLayout <> Value then
begin begin
FLayout := Value; FLayout := Value;
if not (csLoading in ComponentState) then
SetBounds(Left, Top, Height, Width); // flip rectangle
Execute(TBA_RedoBMP); Execute(TBA_RedoBMP);
Invalidate; Invalidate;
end; end;

View File

@ -15,7 +15,7 @@
<Description Value="Comprehensive color selection library with more than 30 components"/> <Description Value="Comprehensive color selection library with more than 30 components"/>
<License Value="License is granted to use, modify and redistribute these units in your applications as you see fit. You are given COMPLETE FREEDOM with the sources found in this pack; you're free to use it in ANY kind of app without even mentioning my name, my site or any other stuff, that depends on your good will and nothing else. I will accept any modifications and incorporate them in this pack if they'll help make it better. You are under NO obligation to pay for these components to neither me nor anyone else trying to sell them in their current form. If you wish to support development of these components you can do so by contributing some source or making a donation, again this solely depends on your good will."/> <License Value="License is granted to use, modify and redistribute these units in your applications as you see fit. You are given COMPLETE FREEDOM with the sources found in this pack; you're free to use it in ANY kind of app without even mentioning my name, my site or any other stuff, that depends on your good will and nothing else. I will accept any modifications and incorporate them in this pack if they'll help make it better. You are under NO obligation to pay for these components to neither me nor anyone else trying to sell them in their current form. If you wish to support development of these components you can do so by contributing some source or making a donation, again this solely depends on your good will."/>
<Version Major="2" Release="2"/> <Version Major="2" Release="2"/>
<Files Count="45"> <Files Count="46">
<Item1> <Item1>
<Filename Value="PalUtils.pas"/> <Filename Value="PalUtils.pas"/>
<UnitName Value="PalUtils"/> <UnitName Value="PalUtils"/>
@ -42,7 +42,6 @@
</Item6> </Item6>
<Item7> <Item7>
<Filename Value="mbColorList.pas"/> <Filename Value="mbColorList.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="mbColorList"/> <UnitName Value="mbColorList"/>
</Item7> </Item7>
<Item8> <Item8>
@ -51,52 +50,42 @@
</Item8> </Item8>
<Item9> <Item9>
<Filename Value="BColorPicker.pas"/> <Filename Value="BColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="BColorPicker"/> <UnitName Value="BColorPicker"/>
</Item9> </Item9>
<Item10> <Item10>
<Filename Value="GColorPicker.pas"/> <Filename Value="GColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="GColorPicker"/> <UnitName Value="GColorPicker"/>
</Item10> </Item10>
<Item11> <Item11>
<Filename Value="RColorPicker.pas"/> <Filename Value="RColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="RColorPicker"/> <UnitName Value="RColorPicker"/>
</Item11> </Item11>
<Item12> <Item12>
<Filename Value="HColorPicker.pas"/> <Filename Value="HColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HColorPicker"/> <UnitName Value="HColorPicker"/>
</Item12> </Item12>
<Item13> <Item13>
<Filename Value="KColorPicker.pas"/> <Filename Value="KColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="KColorPicker"/> <UnitName Value="KColorPicker"/>
</Item13> </Item13>
<Item14> <Item14>
<Filename Value="LColorPicker.pas"/> <Filename Value="LColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="LColorPicker"/> <UnitName Value="LColorPicker"/>
</Item14> </Item14>
<Item15> <Item15>
<Filename Value="MColorPicker.pas"/> <Filename Value="MColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="MColorPicker"/> <UnitName Value="MColorPicker"/>
</Item15> </Item15>
<Item16> <Item16>
<Filename Value="VColorPicker.pas"/> <Filename Value="VColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="VColorPicker"/> <UnitName Value="VColorPicker"/>
</Item16> </Item16>
<Item17> <Item17>
<Filename Value="YColorPicker.pas"/> <Filename Value="YColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="YColorPicker"/> <UnitName Value="YColorPicker"/>
</Item17> </Item17>
<Item18> <Item18>
<Filename Value="mbColorPreview.pas"/> <Filename Value="mbColorPreview.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="mbColorPreview"/> <UnitName Value="mbColorPreview"/>
</Item18> </Item18>
<Item19> <Item19>
@ -109,62 +98,50 @@
</Item20> </Item20>
<Item21> <Item21>
<Filename Value="BAxisColorPicker.pas"/> <Filename Value="BAxisColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="BAxisColorPicker"/> <UnitName Value="BAxisColorPicker"/>
</Item21> </Item21>
<Item22> <Item22>
<Filename Value="GAxisColorPicker.pas"/> <Filename Value="GAxisColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="GAxisColorPicker"/> <UnitName Value="GAxisColorPicker"/>
</Item22> </Item22>
<Item23> <Item23>
<Filename Value="RAxisColorPicker.pas"/> <Filename Value="RAxisColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="RAxisColorPicker"/> <UnitName Value="RAxisColorPicker"/>
</Item23> </Item23>
<Item24> <Item24>
<Filename Value="CIEAColorPicker.pas"/> <Filename Value="CIEAColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="CIEAColorPicker"/> <UnitName Value="CIEAColorPicker"/>
</Item24> </Item24>
<Item25> <Item25>
<Filename Value="CIEBColorPicker.pas"/> <Filename Value="CIEBColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="CIEBColorPicker"/> <UnitName Value="CIEBColorPicker"/>
</Item25> </Item25>
<Item26> <Item26>
<Filename Value="CIELColorPicker.pas"/> <Filename Value="CIELColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="CIELColorPicker"/> <UnitName Value="CIELColorPicker"/>
</Item26> </Item26>
<Item27> <Item27>
<Filename Value="HRingPicker.pas"/> <Filename Value="HRingPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HRingPicker"/> <UnitName Value="HRingPicker"/>
</Item27> </Item27>
<Item28> <Item28>
<Filename Value="HexaColorPicker.pas"/> <Filename Value="HexaColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HexaColorPicker"/> <UnitName Value="HexaColorPicker"/>
</Item28> </Item28>
<Item29> <Item29>
<Filename Value="HSColorPicker.pas"/> <Filename Value="HSColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HSColorPicker"/> <UnitName Value="HSColorPicker"/>
</Item29> </Item29>
<Item30> <Item30>
<Filename Value="SLColorPicker.pas"/> <Filename Value="SLColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="SLColorPicker"/> <UnitName Value="SLColorPicker"/>
</Item30> </Item30>
<Item31> <Item31>
<Filename Value="SLHColorPicker.pas"/> <Filename Value="SLHColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="SLHColorPicker"/> <UnitName Value="SLHColorPicker"/>
</Item31> </Item31>
<Item32> <Item32>
<Filename Value="HSVColorPicker.pas"/> <Filename Value="HSVColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HSVColorPicker"/> <UnitName Value="HSVColorPicker"/>
</Item32> </Item32>
<Item33> <Item33>
@ -173,7 +150,6 @@
</Item33> </Item33>
<Item34> <Item34>
<Filename Value="mbOfficeColorDialog.pas"/> <Filename Value="mbOfficeColorDialog.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="mbOfficeColorDialog"/> <UnitName Value="mbOfficeColorDialog"/>
</Item34> </Item34>
<Item35> <Item35>
@ -182,27 +158,22 @@
</Item35> </Item35>
<Item36> <Item36>
<Filename Value="HSLColorPicker.pas"/> <Filename Value="HSLColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HSLColorPicker"/> <UnitName Value="HSLColorPicker"/>
</Item36> </Item36>
<Item37> <Item37>
<Filename Value="mbColorPalette.pas"/> <Filename Value="mbColorPalette.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="mbColorPalette"/> <UnitName Value="mbColorPalette"/>
</Item37> </Item37>
<Item38> <Item38>
<Filename Value="CColorPicker.pas"/> <Filename Value="CColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="CColorPicker"/> <UnitName Value="CColorPicker"/>
</Item38> </Item38>
<Item39> <Item39>
<Filename Value="SColorPicker.pas"/> <Filename Value="SColorPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="SColorPicker"/> <UnitName Value="SColorPicker"/>
</Item39> </Item39>
<Item40> <Item40>
<Filename Value="mbDeskPickerButton.pas"/> <Filename Value="mbDeskPickerButton.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="mbDeskPickerButton"/> <UnitName Value="mbDeskPickerButton"/>
</Item40> </Item40>
<Item41> <Item41>
@ -211,12 +182,10 @@
</Item41> </Item41>
<Item42> <Item42>
<Filename Value="mbColorTree.pas"/> <Filename Value="mbColorTree.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="mbColorTree"/> <UnitName Value="mbColorTree"/>
</Item42> </Item42>
<Item43> <Item43>
<Filename Value="HSLRingPicker.pas"/> <Filename Value="HSLRingPicker.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="HSLRingPicker"/> <UnitName Value="HSLRingPicker"/>
</Item43> </Item43>
<Item44> <Item44>
@ -225,8 +194,14 @@
</Item44> </Item44>
<Item45> <Item45>
<Filename Value="mbutils.pas"/> <Filename Value="mbutils.pas"/>
<UnitName Value="mbutils"/> <UnitName Value="mbUtils"/>
</Item45> </Item45>
<Item46>
<Filename Value="mbReg.pas"/>
<HasRegisterProc Value="True"/>
<AddToUsesPkgSection Value="False"/>
<UnitName Value="mbReg"/>
</Item46>
</Files> </Files>
<RequiredPkgs Count="2"> <RequiredPkgs Count="2">
<Item1> <Item1>