Dokumentacija HotXLS

ResolveIndexedColor metoda

Razvrsti žeton indeksirane barve in razreši konkretno vrednost ARGB, ko jo zagotavlja paleta delovnega zvezka ali razreševalnik sistemskih barv, ki ga prispeva klicatelj

Metoda je na voljo tako pri IXLSWorkbook kot pri TXLSXWorkbook in ne spreminja stanja delovnega zvezka

Skladnja

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;

Prostori indeksov

ProstorRazlaga
xicsPublicColorIndexJavni indeksi palete 1..56 se preslikajo v reže palete BIFF 8..63; predznačena ali nepredznačena vrednost xlColorIndexAutomatic se razvrsti kot samodejna
xicsBiffIcvIndeksi BIFF so potrjeni proti izbrani vlogi: barve pisav in pripomb uporabljajo podmnožico IcvFont, barve robov in polnil podmnožico IcvXF, barve diagramov podmnožico IcvChart, splošno iskanje pa celotno tabelo Icv
xicsOoxmlIndexedIndeksi OOXML 0..63 naslavljajo indeksirano paleto, 64 in 65 opredeljujeta sistemsko barvo ospredja in ozadja, večje vrednosti pa so neveljavne

Rezultat

PoljePomen
KindxickPalette, xickAutomatic, xickSystem ali xickInvalid
RawIndexNespremenjena vhodna vrednost
PaletteSlotFizična reža palete z ničelno osnovo ali -1, ko žeton ne temelji na paleti
SystemColorRoleSemantična sistemska vloga, vključno z besedilom okna, ozadjem okna, besedilom diagrama, ozadjem diagrama, nevtralno barvo diagrama ali besedilom namigov
ARGBNormalizirana konkretna barva, ko je HasResolvedColor res
HasResolvedColorRes samo, ko je iskanje po paleti, fiksna barva formata ali izrecni povratni klic ustvarilo vrednost RGB

Vrnjena vrednost funkcije se ujema s HasResolvedColor; razvrstitev ostane na voljo v AResolution, tudi ko funkcija vrne false

Pogodba o sistemskih barvah

Kratka preobtežitev nikoli ne bere trenutnega namizja Windows in zato pusti samodejne barve ter sistemske barve, odvisne od okolja, nerazrešene

Dolga preobtežitev posreduje tako TXLSSystemColorRole kot TXLSIndexedColorRole k ASystemResolver, kar klicatelju omogoča uporabo izrecnega pravilnika za uporabniški vmesnik, izvoz ali upodabljanje brez glave

Izhod povratnega klica mora uporabljati vrstni red kanalov $AARRGGBB; ničelni bajt alfa se normalizira na $FF, rezultat povratnega klica false pa pusti semantični žeton razvrščen, a nerazrešen

Windows COLORREF uporablja vrstni red kanalov $00BBGGRR in ga je treba pretvoriti v $AARRGGBB, preden ga povratni klic vrne

Neveljavni žetoni nikoli ne pokličejo povratnega klica, fiksni žeton nevtralne barve diagramov BIFF pa se razreši v motno črno brez povratnega klica

Primer

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

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

Glej tudi