Dokumentácia HotXLS

Metóda ResolveIndexedColor

Z klasifikuje indexovaný token farby a rozpozná konkrétnu hodnotu ARGB, keď ju poskytne paleta zošita alebo resolver systémových farieb dodaný volajúcim

Metóda je k dispozícii na IXLSWorkbook aj TXLSXWorkbook a nemení stav zošita

Syntax

function ResolveIndexedColor(
  AIndex: Int64;
  ASpace: TXLSIndexedColorSpace;
  out AResolution: TXLSIndexedColorResolution): Boolean; overload;

function ResolveIndexedColor(
  AIndex: Int64;
  ASpace: TXLSIndexedColorSpace;
  ARole: TXLSIndexedColorRole;
  ASystemResolver: TXLSTryResolveSystemColor;
  out AResolution: TXLSIndexedColorResolution): Boolean; overload;

Priestory indexov

PriestorInterpretácia
xicsPublicColorIndexVerejné indexy palety 1..56 sa mapujú na sloty palety BIFF 8..63; znamienkový alebo bezznamienkový xlColorIndexAutomatic sa klasifikuje ako automatický
xicsBiffIcvIndexy BIFF sa validujú podľa vybranej roly: farby písiem a komentárov používajú podmnožinu IcvFont, farby ohraničení a výplní podmnožinu IcvXF, farby grafov podmnožinu IcvChart a všeobecné vyhľadávanie používa kompletnú tabuľku Icv
xicsOoxmlIndexedIndexy OOXML 0..63 adresujú indexovanú paletu, 64 a 65 identifikujú systémovú farbu popredia a pozadia a väčšie hodnoty sú neplatné

Výsledok

PoleVýznam
KindxickPalette, xickAutomatic, xickSystem alebo xickInvalid
RawIndexNezmenená vstupná hodnota
PaletteSlotFyzický slot palety indexovaný od nuly, alebo -1, keď token nie je založený na palete
SystemColorRoleSémantická systémová rola, vrátane textu okna, pozadia okna, textu grafu, pozadia grafu, neutrálnej farby grafu alebo textu tipu
ARGBNormalizovaná konkrétna farba, keď je HasResolvedColor true
HasResolvedColorTrue len vtedy, keď vyhľadanie v palete, pevná formátovaná farba alebo explicitné spätné volanie vyprodukovalo hodnotu RGB

Návratová hodnota funkcie zodpovedá HasResolvedColor; klasifikácia ostane k dispozícii v AResolution, aj keď funkcia vráti false

Kontrakt systémových farieb

Kratšie preťaženie nikdy nečíta aktuálnu plochu Windows, a preto ponecháva automatické farby a farby závislé od prostredia nerozpoznané

Dlhšie preťaženie odovzdáva do ASystemResolver ako TXLSSystemColorRole, tak aj TXLSIndexedColorRole, čo volajúcemu umožňuje aplikovať explicitnú politiku UI, exportu alebo bezhlavého vykresľovania

Výstup spätného volania musí používať poradie kanálov $AARRGGBB; nulový bajt alfa sa normalizuje na $FF, zatiaľ čo výsledok spätného volania false ponechá sémantický token klasifikovaný, ale nerozpoznaný

Windows COLORREF používa poradie kanálov $00BBGGRR a musí sa pred vrátením zo spätného volania previesť na $AARRGGBB

Neplatné tokeny nikdy nevolajú spätné volanie a pevný token neutrálnej farby grafu BIFF sa rozpozná na nepriehľadnú čiernu bez spätného volania

Príklad

if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then
  UseArgb(Resolution.ARGB);

if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then
  Assert(Resolution.Kind = xickSystem);

Pozri tiež