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
| Prostor | Razlaga |
|---|---|
xicsPublicColorIndex | Javni indeksi palete 1..56 se preslikajo v reže palete BIFF 8..63; predznačena ali nepredznačena vrednost xlColorIndexAutomatic se razvrsti kot samodejna |
xicsBiffIcv | Indeksi 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 |
xicsOoxmlIndexed | Indeksi OOXML 0..63 naslavljajo indeksirano paleto, 64 in 65 opredeljujeta sistemsko barvo ospredja in ozadja, večje vrednosti pa so neveljavne |
Rezultat
| Polje | Pomen |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem ali xickInvalid |
RawIndex | Nespremenjena vhodna vrednost |
PaletteSlot | Fizična reža palete z ničelno osnovo ali -1, ko žeton ne temelji na paleti |
SystemColorRole | Semantična sistemska vloga, vključno z besedilom okna, ozadjem okna, besedilom diagrama, ozadjem diagrama, nevtralno barvo diagrama ali besedilom namigov |
ARGB | Normalizirana konkretna barva, ko je HasResolvedColor res |
HasResolvedColor | Res 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);