Color Picker

  • 3 minutes to read

ColorPicker

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;
}