You've already forked lazarus-ccr
mbColorLib: Add SHL picker to and permanently display HSL edits in OfficeMoreColorsDialog
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5474 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -33,6 +33,8 @@ type
|
|||||||
FHSCursor, FLCursor: TCursor;
|
FHSCursor, FLCursor: TCursor;
|
||||||
PBack: TBitmap;
|
PBack: TBitmap;
|
||||||
function GetManual: boolean;
|
function GetManual: boolean;
|
||||||
|
function GetShowHint: Boolean;
|
||||||
|
procedure SetShowHint(AValue: 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);
|
||||||
@ -83,7 +85,7 @@ type
|
|||||||
property HSPickerCursor: TCursor read FHSCursor write SetHSCursor default crDefault;
|
property HSPickerCursor: TCursor read FHSCursor write SetHSCursor default crDefault;
|
||||||
property LPickerCursor: TCursor read FLCursor write SetLCursor default crDefault;
|
property LPickerCursor: TCursor read FLCursor write SetLCursor default crDefault;
|
||||||
property TabStop default true;
|
property TabStop default true;
|
||||||
property ShowHint;
|
property ShowHint read GetShowHint write SetShowHint;
|
||||||
property ParentShowHint;
|
property ParentShowHint;
|
||||||
property Anchors;
|
property Anchors;
|
||||||
property Align;
|
property Align;
|
||||||
@ -323,6 +325,19 @@ function THSLColorPicker.GetManual:boolean;
|
|||||||
begin
|
begin
|
||||||
Result := FHSPicker.Manual or FLPicker.Manual;
|
Result := FHSPicker.Manual or FLPicker.Manual;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function THSLColorPicker.GetShowHint: Boolean;
|
||||||
|
begin
|
||||||
|
Result := inherited ShowHint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure THSLColorPicker.SetShowHint(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
inherited ShowHint := AValue;
|
||||||
|
FHSPicker.ShowHint := AValue;
|
||||||
|
FLPicker.ShowHint := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
(*
|
(*
|
||||||
procedure THSLColorPicker.PaintParentBack;
|
procedure THSLColorPicker.PaintParentBack;
|
||||||
begin
|
begin
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
object OfficeMoreColorsWin: TOfficeMoreColorsWin
|
object OfficeMoreColorsWin: TOfficeMoreColorsWin
|
||||||
Left = 194
|
Left = 265
|
||||||
Height = 300
|
Height = 300
|
||||||
Top = 112
|
Top = 115
|
||||||
Width = 331
|
Width = 331
|
||||||
ActiveControl = OKbtn
|
ActiveControl = OKbtn
|
||||||
BorderIcons = [biSystemMenu]
|
BorderIcons = [biSystemMenu]
|
||||||
@ -90,35 +90,35 @@ object OfficeMoreColorsWin: TOfficeMoreColorsWin
|
|||||||
object Label3: TLabel
|
object Label3: TLabel
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 13
|
Height = 13
|
||||||
Top = 154
|
Top = 150
|
||||||
Width = 60
|
Width = 32
|
||||||
Anchors = [akLeft, akBottom]
|
Anchors = [akLeft, akBottom]
|
||||||
Caption = 'Color mo&del:'
|
Caption = 'Mo&del:'
|
||||||
FocusControl = ColorModel
|
FocusControl = ColorModel
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object LRedOrHue: TLabel
|
object LRed: TLabel
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 13
|
Height = 13
|
||||||
Top = 180
|
Top = 176
|
||||||
Width = 23
|
Width = 23
|
||||||
Anchors = [akLeft, akBottom]
|
Anchors = [akLeft, akBottom]
|
||||||
Caption = '&Red:'
|
Caption = '&Red:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object LGreenOrSat: TLabel
|
object LGreen: TLabel
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 13
|
Height = 13
|
||||||
Top = 206
|
Top = 202
|
||||||
Width = 33
|
Width = 33
|
||||||
Anchors = [akLeft, akBottom]
|
Anchors = [akLeft, akBottom]
|
||||||
Caption = '&Green:'
|
Caption = '&Green:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object LBlueOrLum: TLabel
|
object LBlue: TLabel
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 13
|
Height = 13
|
||||||
Top = 232
|
Top = 228
|
||||||
Width = 24
|
Width = 24
|
||||||
Anchors = [akLeft, akBottom]
|
Anchors = [akLeft, akBottom]
|
||||||
Caption = '&Blue:'
|
Caption = '&Blue:'
|
||||||
@ -126,9 +126,9 @@ object OfficeMoreColorsWin: TOfficeMoreColorsWin
|
|||||||
end
|
end
|
||||||
object HSL: THSLColorPicker
|
object HSL: THSLColorPicker
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 128
|
Height = 124
|
||||||
Top = 20
|
Top = 20
|
||||||
Width = 203
|
Width = 210
|
||||||
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]
|
||||||
@ -136,10 +136,10 @@ object OfficeMoreColorsWin: TOfficeMoreColorsWin
|
|||||||
OnChange = HSLChange
|
OnChange = HSLChange
|
||||||
end
|
end
|
||||||
object ColorModel: TComboBox
|
object ColorModel: TComboBox
|
||||||
Left = 74
|
Left = 48
|
||||||
Height = 21
|
Height = 21
|
||||||
Top = 148
|
Top = 146
|
||||||
Width = 92
|
Width = 147
|
||||||
Anchors = [akLeft, akBottom]
|
Anchors = [akLeft, akBottom]
|
||||||
ItemHeight = 13
|
ItemHeight = 13
|
||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
@ -152,6 +152,44 @@ object OfficeMoreColorsWin: TOfficeMoreColorsWin
|
|||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
Text = 'RGB'
|
Text = 'RGB'
|
||||||
end
|
end
|
||||||
|
object SLH: TSLHColorPicker
|
||||||
|
Left = 6
|
||||||
|
Height = 80
|
||||||
|
Top = 20
|
||||||
|
Width = 115
|
||||||
|
HPickerHintFormat = 'Hue: %h'
|
||||||
|
SLPickerHintFormat = 'S: %hslS L: %l'#13'Hex: %hex'
|
||||||
|
ParentShowHint = False
|
||||||
|
TabOrder = 2
|
||||||
|
OnChange = SLHChange
|
||||||
|
end
|
||||||
|
object LHue: TLabel
|
||||||
|
Left = 120
|
||||||
|
Height = 13
|
||||||
|
Top = 176
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akLeft, akBottom]
|
||||||
|
Caption = '&Hue:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object LSat: TLabel
|
||||||
|
Left = 120
|
||||||
|
Height = 13
|
||||||
|
Top = 202
|
||||||
|
Width = 20
|
||||||
|
Anchors = [akLeft, akBottom]
|
||||||
|
Caption = '&Sat:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object LLum: TLabel
|
||||||
|
Left = 120
|
||||||
|
Height = 13
|
||||||
|
Top = 228
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akLeft, akBottom]
|
||||||
|
Caption = 'L&um:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object OKbtn: TButton
|
object OKbtn: TButton
|
||||||
|
@ -14,11 +14,18 @@ uses
|
|||||||
Forms, StdCtrls, ExtCtrls, ComCtrls,
|
Forms, StdCtrls, ExtCtrls, ComCtrls,
|
||||||
HexaColorPicker, HSLColorPicker, RGBHSLUtils,
|
HexaColorPicker, HSLColorPicker, RGBHSLUtils,
|
||||||
mbColorPreview, {$IFDEF mbXP_Lib}mbXPSpinEdit, mbXPSizeGrip,{$ELSE} Spin,{$ENDIF}
|
mbColorPreview, {$IFDEF mbXP_Lib}mbXPSpinEdit, mbXPSizeGrip,{$ELSE} Spin,{$ENDIF}
|
||||||
HTMLColors;
|
HTMLColors, SLHColorPicker;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
{ TOfficeMoreColorsWin }
|
||||||
|
|
||||||
TOfficeMoreColorsWin = class(TForm)
|
TOfficeMoreColorsWin = class(TForm)
|
||||||
|
LLum: TLabel;
|
||||||
|
LSat: TLabel;
|
||||||
|
LHue: TLabel;
|
||||||
Pages: TPageControl;
|
Pages: TPageControl;
|
||||||
|
SLH: TSLHColorPicker;
|
||||||
Standard: TTabSheet;
|
Standard: TTabSheet;
|
||||||
Custom: TTabSheet;
|
Custom: TTabSheet;
|
||||||
Hexa: THexaColorPicker;
|
Hexa: THexaColorPicker;
|
||||||
@ -27,9 +34,9 @@ type
|
|||||||
Label2: TLabel;
|
Label2: TLabel;
|
||||||
Label3: TLabel;
|
Label3: TLabel;
|
||||||
ColorModel: TComboBox;
|
ColorModel: TComboBox;
|
||||||
LRedOrHue: TLabel;
|
LRed: TLabel;
|
||||||
LGreenOrSat: TLabel;
|
LGreen: TLabel;
|
||||||
LBlueOrLum: TLabel;
|
LBlue: TLabel;
|
||||||
Label4: TLabel;
|
Label4: TLabel;
|
||||||
Label5: TLabel;
|
Label5: TLabel;
|
||||||
OKbtn: TButton;
|
OKbtn: TButton;
|
||||||
@ -38,9 +45,12 @@ type
|
|||||||
OldSwatch: TmbColorPreview;
|
OldSwatch: TmbColorPreview;
|
||||||
procedure ColorModelChange(Sender: TObject);
|
procedure ColorModelChange(Sender: TObject);
|
||||||
procedure HSLChange(Sender: TObject);
|
procedure HSLChange(Sender: TObject);
|
||||||
procedure ERedOrHueChange(Sender: TObject);
|
procedure ERedChange(Sender: TObject);
|
||||||
procedure EGreenOrSatChange(Sender: TObject);
|
procedure EGreenChange(Sender: TObject);
|
||||||
procedure EBlueOrLumChange(Sender: TObject);
|
procedure EBlueChange(Sender: TObject);
|
||||||
|
procedure EHueChange(Sender: TObject);
|
||||||
|
procedure ESatChange(Sender: TObject);
|
||||||
|
procedure ELumChange(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
procedure FormResize(Sender: TObject);
|
procedure FormResize(Sender: TObject);
|
||||||
@ -50,12 +60,15 @@ type
|
|||||||
procedure OldSwatchColorChange(Sender: TObject);
|
procedure OldSwatchColorChange(Sender: TObject);
|
||||||
procedure PagesChange(Sender: TObject);
|
procedure PagesChange(Sender: TObject);
|
||||||
procedure SetAllToSel(c: TColor);
|
procedure SetAllToSel(c: TColor);
|
||||||
|
procedure SLHChange(Sender: TObject);
|
||||||
private
|
private
|
||||||
{$IFDEF mbXP_Lib}
|
{$IFDEF mbXP_Lib}
|
||||||
ERedOrHue, EGreenOrSat, EBlueOrLum: TmbXPSpinEdit;
|
ERed, EGreen, EBlue: TmbXPSpinEdit;
|
||||||
|
EHue, ESat, ELum: TmbXPSpinEdit;
|
||||||
grip: TmbXPSizeGrip;
|
grip: TmbXPSizeGrip;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
ERedOrHue, EGreenOrSat, EBlueOrLum: TSpinEdit;
|
ERed, EGreen, EBlue: TSpinEdit;
|
||||||
|
EHue, ESat, ELum: TSpinEdit;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
FLockChange: Integer;
|
FLockChange: Integer;
|
||||||
protected
|
protected
|
||||||
@ -89,124 +102,102 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.ColorModelChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.ColorModelChange(Sender: TObject);
|
||||||
var
|
|
||||||
h, s, l: Integer;
|
|
||||||
begin
|
begin
|
||||||
case ColorModel.ItemIndex of
|
HSL.Visible := ColorModel.ItemIndex = 0;
|
||||||
0:
|
SLH.Visible := ColorModel.ItemIndex = 1;
|
||||||
begin
|
HSL.SelectedColor := NewSwatch.Color;
|
||||||
LRedOrHue.Caption := '&Red:';
|
SLH.SelectedColor := NewSwatch.Color;
|
||||||
LGreenOrSat.Caption := '&Green:';
|
|
||||||
LBlueOrLum.Caption := '&Blue:';
|
|
||||||
ERedOrHue.MaxValue := 255;
|
|
||||||
EGreenOrSat.MaxValue := 255;
|
|
||||||
EBlueOrLum.MaxValue := 255;
|
|
||||||
ERedOrHue.Value := GetRValue(NewSwatch.Color);
|
|
||||||
EGreenOrSat.Value := GetGValue(NewSwatch.Color);
|
|
||||||
EBlueOrLum.Value := GetBValue(NewSwatch.Color);
|
|
||||||
end;
|
|
||||||
1:
|
|
||||||
begin
|
|
||||||
LRedOrHue.Caption := 'H&ue:';
|
|
||||||
LGreenOrSat.Caption := '&Sat:';
|
|
||||||
LBlueOrLum.Caption := '&Lum:';
|
|
||||||
ERedOrHue.MaxValue := MaxHue; //238;
|
|
||||||
EGreenOrSat.MaxValue := MaxSat; //240;
|
|
||||||
EBlueOrLum.MaxValue := MaxLum; //240;
|
|
||||||
RGBtoHSLRange(NewSwatch.Color, h, s, l);
|
|
||||||
ERedOrHue.Value := h;
|
|
||||||
EGreenOrSat.Value := s;
|
|
||||||
EBlueOrLum.Value := l;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.HSLChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.HSLChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if HSL.Manual then
|
NewSwatch.Color := HSL.SelectedColor;
|
||||||
case ColorModel.ItemIndex of
|
end;
|
||||||
0:
|
|
||||||
begin
|
procedure TOfficeMoreColorsWin.ERedChange(Sender: TObject);
|
||||||
ERedOrHue.Value := HSL.RValue;
|
begin
|
||||||
EGreenOrSat.Value := HSL.GValue;
|
if (ERed.Text <> '') and
|
||||||
EBlueOrLum.Value := HSL.BValue;
|
(ERed.Focused {$IFDEF DELPHI} or ERed.Button.Focused{$ENDIF}) then
|
||||||
NewSwatch.Color := HSL.SelectedColor;
|
begin
|
||||||
end;
|
inc(FLockChange);
|
||||||
1:
|
HSL.RValue := ERed.Value;
|
||||||
begin
|
SLH.RValue := ERed.Value;
|
||||||
ERedOrHue.Value := HSL.HValue;
|
NewSwatch.Color := RGB(ERed.Value, EGreen.Value, EBlue.Value);
|
||||||
EGreenOrSat.Value := HSL.SValue;
|
dec(FLockChange);
|
||||||
EBlueOrLum.Value := HSL.LValue;
|
|
||||||
NewSwatch.Color := HSL.SelectedColor;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.ERedOrHueChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.EGreenChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
inc(FLockChange);
|
if (EGreen.Text <> '') and
|
||||||
if (ERedOrHue.Text <> '') and
|
(EGreen.Focused {$IFDEF DELPHI}or EGreen.Button.Focused{$ENDIF}) then
|
||||||
(ERedOrHue.Focused {$IFDEF DELPHI} or ERedOrHue.Button.Focused{$ENDIF})
|
begin
|
||||||
then
|
inc(FLockChange);
|
||||||
case ColorModel.ItemIndex of
|
HSL.GValue := EGreen.Value;
|
||||||
0: begin
|
SLH.GValue := EGreen.Value;
|
||||||
HSL.RValue := ERedOrHue.Value;
|
NewSwatch.Color := RGB(ERed.Value, EGreen.Value, EBlue.Value);
|
||||||
NewSwatch.Color := RGB(ERedOrHue.Value, EGreenOrSat.Value, EBlueOrLum.Value);
|
dec(FLockChange);
|
||||||
end;
|
end;
|
||||||
1: begin
|
|
||||||
HSL.HValue := ERedOrHue.Value;
|
|
||||||
NewSwatch.Color := HSLRangeToRGB(ERedOrHue.Value, EGreenOrSat.Value, EBlueOrLum.Value);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
dec(FLockChange);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.EGreenOrSatChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.EBlueChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
inc(FLockChange);
|
if (EBlue.Text <> '') and
|
||||||
NewSwatch.OnColorChange := nil;
|
(EBlue.Focused {$IFDEF DELPHI} or EBlue.Button.Focused{$ENDIF}) then
|
||||||
if (EGreenOrSat.Text <> '') and
|
begin
|
||||||
(EGreenOrSat.Focused {$IFDEF DELPHI}or EGreen.ButtonOrSat.Focused{$ENDIF})
|
inc(FLockChange);
|
||||||
then
|
HSL.BValue := EBlue.Value;
|
||||||
case ColorModel.ItemIndex of
|
SLH.BValue := EBlue.Value;
|
||||||
0: begin
|
NewSwatch.Color := RGB(ERed.Value, EGreen.Value, EBlue.Value);
|
||||||
HSL.GValue := EGreenOrSat.Value;
|
dec(FLockChange);
|
||||||
NewSwatch.Color := RGB(ERedOrHue.Value, EGreenOrSat.Value, EBlueOrLum.Value);
|
end;
|
||||||
end;
|
|
||||||
1: begin
|
|
||||||
HSL.SValue := EGreenOrSat.Value;
|
|
||||||
NewSwatch.Color := HSLRangeToRGB(ERedOrHue.Value, EGreenOrSat.Value, EBlueOrLum.Value);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
dec(FLockChange);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.EBlueOrLumChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.EHueChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
inc(FLockChange);
|
if (EHue.Text <> '') and
|
||||||
if (EBlueOrLum.Text <> '') and
|
(EHue.Focused {$IFDEF DELPHI} or EHue.Button.Focused{$ENDIF}) then
|
||||||
(EBlueOrLum.Focused {$IFDEF DELPHI} or EBlueOrLum.Button.Focused{$ENDIF})
|
begin
|
||||||
then
|
inc(FLockChange);
|
||||||
case ColorModel.ItemIndex of
|
HSL.HValue := EHue.Value;
|
||||||
0: begin
|
SLH.HValue := EHue.Value;
|
||||||
HSL.BValue := EBlueOrLum.Value;
|
NewSwatch.Color := HSLRangeToRGB(EHue.Value, ESat.Value, ELum.Value);
|
||||||
NewSwatch.Color := RGB(ERedOrHue.Value, EGreenOrSat.Value, EBlueOrLum.Value);
|
dec(FLockChange);
|
||||||
end;
|
end;
|
||||||
1: begin
|
end;
|
||||||
HSL.LValue := EBlueOrLum.Value;
|
|
||||||
NewSwatch.Color := HSLRangeToRGB(ERedOrHue.Value, EGreenOrSat.Value, EBlueOrLum.Value);
|
procedure TOfficeMoreColorsWin.ESatChange(Sender: TObject);
|
||||||
end;
|
begin
|
||||||
end;
|
if (ESat.Text <> '') and
|
||||||
dec(FLockChange);
|
(ESat.Focused {$IFDEF DELPHI}or ESat.Button.Focused{$ENDIF}) then
|
||||||
|
begin
|
||||||
|
inc(FLockChange);
|
||||||
|
HSL.SValue := ESat.Value;
|
||||||
|
SLH.SValue := ESat.Value;
|
||||||
|
NewSwatch.Color := HSLRangeToRGB(EHue.Value, ESat.Value, ELum.Value);
|
||||||
|
dec(FLockChange);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TOfficeMoreColorsWin.ELumChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if (ELum.Text <> '') and
|
||||||
|
(ELum.Focused {$IFDEF DELPHI} or ELum.Button.Focused{$ENDIF}) then
|
||||||
|
begin
|
||||||
|
inc(FLockChange);
|
||||||
|
HSL.LValue := ELum.Value;
|
||||||
|
NewSwatch.Color := HSLRangeToRGB(EHue.Value, ESat.Value, ELum.Value);
|
||||||
|
dec(FLockChange);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.FormKeyDown(Sender: TObject; var Key: Word;
|
procedure TOfficeMoreColorsWin.FormKeyDown(Sender: TObject; var Key: Word;
|
||||||
Shift: TShiftState);
|
Shift: TShiftState);
|
||||||
begin
|
begin
|
||||||
case Key of
|
case Key of
|
||||||
VK_RETURN: ModalResult := mrOK;
|
VK_RETURN: ModalResult := mrOK;
|
||||||
VK_ESCAPE: ModalResult := mrCancel;
|
VK_ESCAPE: ModalResult := mrCancel;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.HexaChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.HexaChange(Sender: TObject);
|
||||||
@ -227,59 +218,51 @@ var
|
|||||||
h,s,l: Integer;
|
h,s,l: Integer;
|
||||||
begin
|
begin
|
||||||
NewSwatch.Hint := GetHint(NewSwatch.Color);
|
NewSwatch.Hint := GetHint(NewSwatch.Color);
|
||||||
if (ERedOrHue = nil) or (EBlueOrLum = nil) or (EGreenOrSat = nil) or
|
if (ERed = nil) or (EBlue = nil) or (EGreen = nil) or
|
||||||
(FLockChange <> 0)
|
(EHue = nil) or (ESat = nil) or (ELum = nil) or (FLockChange <> 0)
|
||||||
then
|
then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
if ColorModel.ItemIndex = 0 then // RGB
|
ERed.Value := GetRValue(NewSwatch.Color);
|
||||||
begin
|
EGreen.Value := GetGValue(NewSwatch.Color);
|
||||||
ERedOrHue.Value := GetRValue(NewSwatch.Color);
|
EBlue.Value := GetBValue(NewSwatch.Color);
|
||||||
EGreenOrSat.Value := GetGValue(NewSwatch.Color);
|
EHue.Value := GetHValue(NewSwatch.Color);
|
||||||
EBlueOrLum.Value := GetBValue(NewSwatch.Color);
|
ESat.Value := GetSValue(NewSwatch.Color);
|
||||||
end else
|
ELum.Value := GetLValue(NewSwatch.Color);
|
||||||
begin
|
|
||||||
ERedOrHue.Value := GetHValue(NewSwatch.Color);
|
|
||||||
EGreenOrSat.Value := GetSValue(NewSwatch.Color);
|
|
||||||
EBlueOrLum.Value := GetLValue(NewSwatch.Color);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.OldSwatchColorChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.OldSwatchColorChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
OldSwatch.Hint := GetHint(OldSwatch.Color);
|
OldSwatch.Hint := GetHint(OldSwatch.Color);
|
||||||
SetAllToSel(OldSwatch.Color);
|
SetAllToSel(OldSwatch.Color);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.SetAllToSel(c: TColor);
|
procedure TOfficeMoreColorsWin.SetAllToSel(c: TColor);
|
||||||
var
|
var
|
||||||
h, s, l: Integer;
|
h, s, l: Integer;
|
||||||
begin
|
begin
|
||||||
case Pages.ActivePageIndex of
|
case Pages.ActivePageIndex of
|
||||||
// Standard Page
|
// Standard Page
|
||||||
0: Hexa.SelectedColor := c;
|
0: Hexa.SelectedColor := c;
|
||||||
// Custom Page
|
// Custom Page
|
||||||
1:
|
1: begin
|
||||||
begin
|
HSL.SelectedColor := c;
|
||||||
HSL.SelectedColor := c;
|
SLH.SelectedColor := c;
|
||||||
case ColorModel.ItemIndex of
|
ERed.Value := GetRValue(c);
|
||||||
0:
|
EGreen.Value := GetGValue(c);
|
||||||
begin
|
EBlue.Value := GetBValue(c);
|
||||||
ERedOrHue.Value := GetRValue(c);
|
RGBtoHSLRange(c, h, s, l);
|
||||||
EGreenOrSat.Value := GetGValue(c);
|
EHue.Value := h;
|
||||||
EBlueOrLum.Value := GetBValue(c);
|
ESat.Value := s;
|
||||||
end;
|
ELum.Value := l;
|
||||||
1:
|
end;
|
||||||
begin
|
end;
|
||||||
RGBtoHSLRange(c, h, s, l);
|
NewSwatch.Color := c;
|
||||||
ERedOrHue.Value := h;
|
end;
|
||||||
EGreenOrSat.Value := s;
|
|
||||||
EBlueOrLum.Value := l;
|
procedure TOfficeMoreColorsWin.SLHChange(Sender: TObject);
|
||||||
end;
|
begin
|
||||||
end;
|
NewSwatch.Color := SLH.SelectedColor;
|
||||||
end;
|
|
||||||
end;
|
|
||||||
NewSwatch.Color := c;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOfficeMoreColorsWin.PagesChange(Sender: TObject);
|
procedure TOfficeMoreColorsWin.PagesChange(Sender: TObject);
|
||||||
@ -289,6 +272,8 @@ end;
|
|||||||
|
|
||||||
procedure TOfficeMoreColorsWin.FormResize(Sender: TObject);
|
procedure TOfficeMoreColorsWin.FormResize(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
SLH.Width := SLH.Parent.ClientWidth - SLH.Left;
|
||||||
|
SLH.Height := ColorModel.Top - SLH.Top;
|
||||||
{$IFDEF mbXP_Lib}
|
{$IFDEF mbXP_Lib}
|
||||||
grip.Left := ClientWidth - 15;
|
grip.Left := ClientWidth - 15;
|
||||||
grip.Top := ClientHeight - 15;
|
grip.Top := ClientHeight - 15;
|
||||||
@ -297,58 +282,116 @@ end;
|
|||||||
|
|
||||||
procedure TOfficeMoreColorsWin.FormCreate(Sender: TObject);
|
procedure TOfficeMoreColorsWin.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
SLH.Width := HSL.Width;
|
||||||
|
SLH.Height := HSL.Height;
|
||||||
|
SLH.Top := HSL.Top;
|
||||||
|
SLH.Left := HSL.Left;
|
||||||
|
SLH.Hide;
|
||||||
|
// SLH.Anchors := [akLeft, akTop, akRight, akBottom];
|
||||||
|
|
||||||
{$IFDEF mbXP_Lib}
|
{$IFDEF mbXP_Lib}
|
||||||
ERedOrHue := TmbXPSpinEdit.CreateParented(Custom.Handle);
|
ERed := TmbXPSpinEdit.CreateParented(Custom.Handle);
|
||||||
EGreenOrSat := TmbXPSpinEdit.CreateParented(Custom.Handle);
|
EGreen := TmbXPSpinEdit.CreateParented(Custom.Handle);
|
||||||
EBlueOrLum := TmbXPSpinEdit.CreateParented(Custom.Handle);
|
EBlue := TmbXPSpinEdit.CreateParented(Custom.Handle);
|
||||||
grip := TmbXPSizeGrip.CreateParented(Self.Handle);
|
grip := TmbXPSizeGrip.CreateParented(Self.Handle);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
ERedOrHue := TSpinEdit.CreateParented(Custom.Handle);
|
ERed := TSpinEdit.CreateParented(Custom.Handle);
|
||||||
EGreenOrSat := TSpinEdit.CreateParented(Custom.Handle);
|
EGreen := TSpinEdit.CreateParented(Custom.Handle);
|
||||||
EBlueOrLum := TSpinEdit.CreateParented(Custom.Handle);
|
EBlue := TSpinEdit.CreateParented(Custom.Handle);
|
||||||
|
EHue := TSpinEdit.CreateParented(Custom.Handle);
|
||||||
|
ESat := TSpinEdit.createParented(Custom.Handle);
|
||||||
|
ELum := TSpinEdit.CreateParented(Custom.Handle);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
with ERedOrHue do
|
with ERed do
|
||||||
begin
|
begin
|
||||||
Name := 'ERed';
|
Name := 'ERed';
|
||||||
Width := 47;
|
Width := 47;
|
||||||
Height := 22;
|
Height := 22;
|
||||||
Left := 74;
|
Left := ColorModel.Left;
|
||||||
Top := LRedOrHue.Top - 4; //198;
|
Top := LRed.Top - 4; //198;
|
||||||
|
Alignment := taRightJustify;
|
||||||
Anchors := [akLeft, akBottom];
|
Anchors := [akLeft, akBottom];
|
||||||
MaxValue := 255;
|
MaxValue := 255;
|
||||||
MinValue := 0;
|
MinValue := 0;
|
||||||
Value := 0;
|
Value := 0;
|
||||||
OnChange := @ERedOrHueChange;
|
OnChange := @ERedChange;
|
||||||
end;
|
end;
|
||||||
with EGreenOrSat do
|
with EGreen do
|
||||||
begin
|
begin
|
||||||
Name := 'EGreen';
|
Name := 'EGreen';
|
||||||
Width := 47;
|
Width := 47;
|
||||||
Height := 22;
|
Height := 22;
|
||||||
Left := 74;
|
Left := ColorModel.Left;
|
||||||
Top := LGreenOrSat.Top - 3; //224;
|
Top := LGreen.Top - 3; //224;
|
||||||
|
Alignment := taRightJustify;
|
||||||
Anchors := [akLeft, akBottom];
|
Anchors := [akLeft, akBottom];
|
||||||
MaxValue := 255;
|
MaxValue := 255;
|
||||||
MinValue := 0;
|
MinValue := 0;
|
||||||
Value := 0;
|
Value := 0;
|
||||||
OnChange := @EGreenOrSatChange;
|
OnChange := @EGreenChange;
|
||||||
end;
|
end;
|
||||||
with EBlueOrLum do
|
with EBlue do
|
||||||
begin
|
begin
|
||||||
Name := 'EBlue';
|
Name := 'EBlue';
|
||||||
Width := 47;
|
Width := 47;
|
||||||
Height := 22;
|
Height := 22;
|
||||||
Left := 74;
|
Left := ColorModel.Left;
|
||||||
Top := LBlueOrLum.Top - 4; //251;
|
Top := LBlue.Top - 4; //251;
|
||||||
|
Alignment := taRightJustify;
|
||||||
Anchors := [akLeft, akBottom];
|
Anchors := [akLeft, akBottom];
|
||||||
MaxValue := 255;
|
MaxValue := 255;
|
||||||
MinValue := 0;
|
MinValue := 0;
|
||||||
Value := 0;
|
Value := 0;
|
||||||
OnChange := @EBlueOrLumChange;
|
OnChange := @EBlueChange;
|
||||||
end;
|
end;
|
||||||
Custom.InsertControl(ERedOrHue);
|
with EHue do
|
||||||
Custom.InsertControl(EGreenOrSat);
|
begin
|
||||||
Custom.InsertControl(EBlueOrLum);
|
Name := 'EHue';
|
||||||
|
Width := 47;
|
||||||
|
Height := 22;
|
||||||
|
Left := ColorModel.Left + ColorModel.Width - Width;
|
||||||
|
Top := ERed.Top;
|
||||||
|
Alignment := taRightJustify;
|
||||||
|
Anchors := [akLeft, akBottom];
|
||||||
|
MaxValue := MaxHue;
|
||||||
|
MinValue := 0;
|
||||||
|
Value := 0;
|
||||||
|
OnChange := @EHueChange;
|
||||||
|
end;
|
||||||
|
with ESat do
|
||||||
|
begin
|
||||||
|
Name := 'ESat';
|
||||||
|
Width := 47;
|
||||||
|
Height := 22;
|
||||||
|
Left := ColorModel.Left + ColorModel.Width - Width;
|
||||||
|
Top := EGreen.Top;
|
||||||
|
Alignment := taRightJustify;
|
||||||
|
Anchors := [akLeft, akBottom];
|
||||||
|
MaxValue := MaxSat;
|
||||||
|
MinValue := 0;
|
||||||
|
Value := 0;
|
||||||
|
OnChange := @ESatChange;
|
||||||
|
end;
|
||||||
|
with ELum do
|
||||||
|
begin
|
||||||
|
Name := 'ELum';
|
||||||
|
Width := 47;
|
||||||
|
Height := 22;
|
||||||
|
Left := ColorModel.Left + ColorModel.Width - Width;
|
||||||
|
Top := EBlue.Top;
|
||||||
|
Alignment := taRightJustify;
|
||||||
|
Anchors := [akLeft, akBottom];
|
||||||
|
MaxValue := MaxLum;
|
||||||
|
MinValue := 0;
|
||||||
|
Value := 0;
|
||||||
|
OnChange := @ELumChange;
|
||||||
|
end;
|
||||||
|
Custom.InsertControl(ERed);
|
||||||
|
Custom.InsertControl(EGreen);
|
||||||
|
Custom.InsertControl(EBlue);
|
||||||
|
Custom.InsertControl(EHue);
|
||||||
|
Custom.InsertControl(ESat);
|
||||||
|
Custom.InsertControl(ELum);
|
||||||
{$IFDEF mbXP_Lib}
|
{$IFDEF mbXP_Lib}
|
||||||
with grip do
|
with grip do
|
||||||
begin
|
begin
|
||||||
|
@ -32,6 +32,8 @@ type
|
|||||||
FSLCursor, FHCursor: TCursor;
|
FSLCursor, FHCursor: TCursor;
|
||||||
PBack: TBitmap;
|
PBack: TBitmap;
|
||||||
function GetManual: boolean;
|
function GetManual: boolean;
|
||||||
|
function GetShowHint: Boolean;
|
||||||
|
procedure SetShowHint(AValue: 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);
|
||||||
@ -79,7 +81,7 @@ type
|
|||||||
property HPickerCursor: TCursor read FHCursor write SetHCursor default crDefault;
|
property HPickerCursor: TCursor read FHCursor write SetHCursor default crDefault;
|
||||||
property SLPickerCursor: TCursor read FSLCursor write SetSLCursor default crDefault;
|
property SLPickerCursor: TCursor read FSLCursor write SetSLCursor default crDefault;
|
||||||
property TabStop default true;
|
property TabStop default true;
|
||||||
property ShowHint;
|
property ShowHint read GetShowHint write SetShowHint;
|
||||||
property ParentShowHint;
|
property ParentShowHint;
|
||||||
property Anchors;
|
property Anchors;
|
||||||
property Align;
|
property Align;
|
||||||
@ -326,6 +328,18 @@ begin
|
|||||||
Result := FHPicker.Manual or FSLPicker.Manual;
|
Result := FHPicker.Manual or FSLPicker.Manual;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TSLHColorPicker.GetShowHint: Boolean;
|
||||||
|
begin
|
||||||
|
result := inherited ShowHint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSLHColorPicker.SetShowHint(AValue: Boolean);
|
||||||
|
begin
|
||||||
|
inherited ShowHint := AValue;
|
||||||
|
FSLPicker.ShowHint := AValue;
|
||||||
|
FHPicker.ShowHint := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSLHColorPicker.Resize;
|
procedure TSLHColorPicker.Resize;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
object Form1: TForm1
|
object Form1: TForm1
|
||||||
Left = 255
|
Left = 447
|
||||||
Height = 344
|
Height = 344
|
||||||
Top = 107
|
Top = 197
|
||||||
Width = 543
|
Width = 543
|
||||||
Caption = 'mbColor Lib v2.0.1 Demo'
|
Caption = 'mbColor Lib v2.0.1 Demo'
|
||||||
ClientHeight = 344
|
ClientHeight = 344
|
||||||
@ -42,9 +42,9 @@ object Form1: TForm1
|
|||||||
Height = 331
|
Height = 331
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 399
|
Width = 399
|
||||||
ActivePage = TabSheet8
|
ActivePage = TabSheet6
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
TabIndex = 8
|
TabIndex = 5
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnMouseMove = PageControl1MouseMove
|
OnMouseMove = PageControl1MouseMove
|
||||||
object TabSheet1: TTabSheet
|
object TabSheet1: TTabSheet
|
||||||
|
@ -203,13 +203,16 @@
|
|||||||
<UnitName Value="mbReg"/>
|
<UnitName Value="mbReg"/>
|
||||||
</Item46>
|
</Item46>
|
||||||
</Files>
|
</Files>
|
||||||
<RequiredPkgs Count="2">
|
<RequiredPkgs Count="3">
|
||||||
<Item1>
|
<Item1>
|
||||||
<PackageName Value="LCLBase"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
<Item2>
|
<Item2>
|
||||||
<PackageName Value="FCL"/>
|
<PackageName Value="LCLBase"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<PackageName Value="FCL"/>
|
||||||
|
</Item3>
|
||||||
</RequiredPkgs>
|
</RequiredPkgs>
|
||||||
<UsageOptions>
|
<UsageOptions>
|
||||||
<UnitPath Value="$(PkgOutDir)"/>
|
<UnitPath Value="$(PkgOutDir)"/>
|
||||||
|
Reference in New Issue
Block a user