Metoda ResolveIndexedColor
Z klasifikuje indexovaný token barvy a rozpozná konkrétní hodnotu ARGB, když ji poskytne paleta sešitu nebo resolver systémových barev dodaný volajícím
Metoda je k dispozici na IXLSWorkbook i TXLSXWorkbook a nemění stav sešitu
Syntaxe
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;
Prostory indexů
| Prostor | Interpretace |
|---|---|
xicsPublicColorIndex | Veřejné indexy palety 1..56 se mapují na sloty palety BIFF 8..63; znaménkový nebo bezznaménkový xlColorIndexAutomatic je klasifikován jako automatický |
xicsBiffIcv | Indexy BIFF se validují podle vybrané role: barvy písem a komentářů používají podmnožinu IcvFont, barvy ohraničení a výplní podmnožinu IcvXF, barvy grafů podmnožinu IcvChart a obecné vyhledávání používá kompletní tabulku Icv |
xicsOoxmlIndexed | Indexy OOXML 0..63 adresují indexovanou paletu, 64 a 65 identifikují systémovou barvu popředí a pozadí a větší hodnoty jsou neplatné |
Výsledek
| Pole | Význam |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem nebo xickInvalid |
RawIndex | Nezměněná vstupní hodnota |
PaletteSlot | Fyzický slot palety indexovaný od nuly, nebo -1, když token není založen na paletě |
SystemColorRole | Sémantická systémová role, včetně textu okna, pozadí okna, textu grafu, pozadí grafu, neutrální barvy grafu nebo textu tipu |
ARGB | Normalizovaná konkrétní barva, když je HasResolvedColor true |
HasResolvedColor | True pouze tehdy, když vyhledání v paletě, pevná formátovaná barva nebo explicitní zpětné volání vyprodukovalo hodnotu RGB |
Návratová hodnota funkce odpovídá HasResolvedColor; klasifikace zůstává v AResolution k dispozici, i když funkce vrátí false
Kontrakt systémových barev
Kratší přetížení nikdy nečte aktuální plochu Windows, a proto ponechává automatické barvy a barvy závislé na prostředí nerozpoznané
Delší přetížení předává do ASystemResolver jak TXLSSystemColorRole, tak TXLSIndexedColorRole, což volajícímu umožňuje aplikovat explicitní politiku UI, exportu nebo bezhlavého vykreslování
Výstup zpětného volání musí používat pořadí kanálů $AARRGGBB; nulový bajt alfa se normalizuje na $FF, zatímco výsledek zpětného volání false ponechá sémantický token klasifikovaný, ale nerozpoznaný
Windows COLORREF používá pořadí kanálů $00BBGGRR a musí být před vrácením ze zpětného volání převeden na $AARRGGBB
Neplatné tokeny nikdy nevolají zpětné volání a pevný token neutrální barvy grafu BIFF se rozpozná na neprůhlednou černou bez zpětného volání
Příklad
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);