Color Picker
Control-addin Color Picker
De control-addin maakt het mogelijk een kleur te kiezen.
Kleurcodering in de control-addin gebeurt in de HEX-A (hexadecimaal met alpha-kanaal), in #AARRGGBB-notatie.
Dit betekent dus 8 karakters, waarbij:
- AA: alpha-kanaal
- RR: rood-kanaal
- GG: groen-kanaal
- BB*: blauw-kanaal
Page CFL Color Picker
De control-addin is ingebouwd op deze pagina. Deze pagina maakt het eenvoudig in gebruik.
de pagina is voorzien van 2 functies:
CFLSetColor
Hiermee wordt het geselecteerde kleur ingesteld, in #AARRGGBB-notatie.
CFLGetColor
Hiermee wordt het gekozen kleur teruggegeven, in #AARRGGBB-notatie.
Voorbeeld
field(test; test)
{
Caption = 'Color';
ApplicationArea = All;
trigger OnAssistEdit()
var
CFLColorPicker: page "CFL Color Picker";
begin
CFLColorPicker.LookupMode(true);
CFLColorPicker.CFLSetColor(Test);
if CFLColorPicker.Runmodal() = Action::LookupOK then begin
test := CFLColorPicker.CFLGetColor()
end;
end;
}
Codeunit CFL Color Convert Mgt.
Deze codeunit bevat functies om conversies te doen van kleurcodes.
Zo kan de kleurcode verkregen uit de color picker omgezet worden naar een andere notatie, indien dit nodig zou zijn.
CFLConvertHEXtoHEXA
procedure CFLConvertHEXtoHEXA(Hex: text) HexA: text
Deze functie converteert een HEX-kleurcode (#RRGGBB) naar een HEXA-kleurcode (#AARRGGBB).
CFLConvertHEXAtoHEX
procedure CFLConvertHEXAtoHEX(HexA: text) Hex: text
Deze functie converteert een HEXA-kleurcode (#AARRGGBB) naar een HEX-kleurcode (#RRGGBB).
CFLConvertRGBtoHEX
procedure CFLConvertRGBtoHEX(R: integer; G: integer; B: integer) Hex: text;
Deze functie converteert een RGB-kleurcode naar een HEX-kleurcode (#RRGGBB). De R,G,B zijn hierbij integer waarder tussen 0 en 255.
CFLConvertRGBAtoHEXA
procedure CFLConvertRGBAtoHEXA(R: integer; G: integer; B: integer; A: decimal) HexA: text;
Deze functie converteert een RGBA-kleurcode naar een HEXA-kleurcode (#AARRGGBB).
De R,G,B zijn hierbij integer waarders tussen 0 en 255.
De A is een decimaal tussen 0 en 1 en geeft het percentage van het alpha-kanaal weer.
CFLConvertRGBAtoHEX
procedure CFLConvertRGBAtoHEX(R: integer; G: integer; B: integer; A: decimal) Hex: text;
Deze functie converteert een RGB-kleurcode naar een HEXA-kleurcode (#RRGGBB).
De R,G,B zijn hierbij integer waardes tussen 0 en 255.
De A is een decimaal tussen 0 en 1 en geeft het percentage van het alpha-kanaal weer.
Gezien de HEX-code geen alpha-kanaal informatie bevat zal de A dus verloren gaan in de HEX-code.
CFLConvertRGBtoHEX
procedure CFLConvertRGBtoHEX(R: integer; G: integer; B: integer) Hex: text;
Deze functie converteert een RGB-kleurcode naar een HEXA-kleurcode (#RRGGBB). De R,G,B zijn hierbij integer waardes tussen 0 en 255.
CFLConvertRGBtoHEXA
procedure CFLConvertRGBtoHEXA(R: integer; G: integer; B: integer) HexA: text;
Deze functie converteert een RGB-kleurcode naar een HEXA-kleurcode (#AARRGGBB).
De R,G,B zijn hierbij integer waardes tussen 0 en 255.
Gezien de RGG geen waarde voor het alpha-kanaal bevat, zal dit standaard op 1 (100%) worden geplaatst.
CFLConvertHEXAtoRGBA
procedure CFLConvertHEXAtoRGBA(HexA: text; var R: integer; var G: integer; var B: integer; var A: decimal)
Deze functie converteert een HexA-kleurcode naar de RGBA-waardes.
CFLConvertHEXtoRGB
procedure CFLConvertHEXtoRGB(HexA: text; var R: integer; var G: integer; var B: integer)
Deze functie converteert een Hex-kleurcode naar de RGB-waardes.
CFLConvertHEXAtoRGBAString
procedure CFLConvertHEXAtoRGBAString(HexA: text) RGBA: text
Deze functie converteert een HEXA-kleurcode en naar een RGBA-string.
De RGBA-String is opgebouwd als volgt R,G,B,A.
Daarbij zijn de RGB waardes tussen 0 en 255.
De A is een decimaal met . als decimaal-separator.
CFLConvertHEXtoRGBString
procedure CFLConvertHEXtoRGBString(Hex: text) RGB: text
Deze functie converteert een HEX-kleurcode en naar een RGB-string.
De RGB-String is opgebouwd als volgt R,G,B.
Daarbij zijn de RGB waardes tussen 0 en 255.
CFLConvertRGBAStringToHexA
procedure CFLConvertRGBAStringToHexA(RGBA: text) HexA: text;
Deze functie converteert een RGBA-string naar een HexA-code.
De RGBA-String moet als volgt opgebouwd zijn: R,G,B,A.
Daarbij zijn de RGB waardes tussen 0 en 255.
De A is een decimaal met . als decimaal-separator.
CFLConvertRGBStringToHex
procedure CFLConvertRGBStringToHex(RGB: text) Hex: text;
Deze functie converteert een RGB-string naar een Hex-code.
De RGB-String moet als volgt opgebouwd zijn: R,G,B.
Daarbij zijn de RGB waardes tussen 0 en 255.
Voorbeeld
Voorbeeld van gebruik van de Color Picker in combinatie met de codeunit om de waarde te bewaren als een RGBA-kleurcode string.
field(test; test)
{
Caption = 'Color';
ApplicationArea = All;
trigger OnAssistEdit()
var
CFLColorPicker: page "CFL Color Picker";
ColorConvertMgt: codeunit "CFL Color Convert Mgt.";
begin
CFLColorPicker.LookupMode(true);
if test = '' then test := '0,0,0,1';
CFLColorPicker.CFLSetColor(ColorConvertMgt.CFLCOnvertRGBAStringToHEXA(Test));
if CFLColorPicker.Runmodal() = Action::LookupOK then begin
test := ColorConvertMgt.CFLConvertHEXAtoRGBAString(CFLColorPicker.CFLGetColor());
end;
end;
}