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
| Priestor | Interpretácia |
|---|---|
xicsPublicColorIndex | Verejné indexy palety 1..56 sa mapujú na sloty palety BIFF 8..63; znamienkový alebo bezznamienkový xlColorIndexAutomatic sa klasifikuje ako automatický |
xicsBiffIcv | Indexy 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 |
xicsOoxmlIndexed | Indexy OOXML 0..63 adresujú indexovanú paletu, 64 a 65 identifikujú systémovú farbu popredia a pozadia a väčšie hodnoty sú neplatné |
Výsledok
| Pole | Význam |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem alebo xickInvalid |
RawIndex | Nezmenená vstupná hodnota |
PaletteSlot | Fyzický slot palety indexovaný od nuly, alebo -1, keď token nie je založený na palete |
SystemColorRole | Sémantická systémová rola, vrátane textu okna, pozadia okna, textu grafu, pozadia grafu, neutrálnej farby grafu alebo textu tipu |
ARGB | Normalizovaná konkrétna farba, keď je HasResolvedColor true |
HasResolvedColor | True 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);