Dokumentace HotXLS

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ů

ProstorInterpretace
xicsPublicColorIndexVeřejné indexy palety 1..56 se mapují na sloty palety BIFF 8..63; znaménkový nebo bezznaménkový xlColorIndexAutomatic je klasifikován jako automatický
xicsBiffIcvIndexy 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
xicsOoxmlIndexedIndexy 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

PoleVýznam
KindxickPalette, xickAutomatic, xickSystem nebo xickInvalid
RawIndexNezměněná vstupní hodnota
PaletteSlotFyzický slot palety indexovaný od nuly, nebo -1, když token není založen na paletě
SystemColorRoleSémantická systémová role, včetně textu okna, pozadí okna, textu grafu, pozadí grafu, neutrální barvy grafu nebo textu tipu
ARGBNormalizovaná konkrétní barva, když je HasResolvedColor true
HasResolvedColorTrue 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);

Viz také