ResolveIndexedColor-methode
Classificeert een token voor een geïndexeerde kleur en lost een concrete ARGB-waarde op wanneer het palet van de werkmap of een door de aanroeper geleverde systeemkleurresolver er een oplevert
De methode is beschikbaar op zowel IXLSWorkbook als TXLSXWorkbook en wijzigt de werkmapstatus niet
Syntaxis
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;
Indexruimtes
| Ruimte | Interpretatie |
|---|---|
xicsPublicColorIndex | Openbare paletindexen 1..56 verwijzen naar BIFF-paletslots 8..63; een xlColorIndexAutomatic met of zonder teken wordt geclassificeerd als automatisch |
xicsBiffIcv | BIFF-indexen worden gevalideerd tegen de gekozen rol: lettertype- en opmerkingkleuren gebruiken de IcvFont-subset, rand- en vulkleuren de IcvXF-subset, diagramkleuren de IcvChart-subset, en algemeen opzoeken gebruikt de volledige Icv-tabel |
xicsOoxmlIndexed | OOXML-indexen 0..63 adresseren het geïndexeerde palet, 64 en 65 identificeren systeemvoorgrond en -achtergrond, en grotere waarden zijn ongeldig |
Resultaat
| Veld | Betekenis |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem of xickInvalid |
RawIndex | De ongewijzigde invoerwaarde |
PaletteSlot | Het fysieke paletslot met basis 0, of -1 wanneer het token niet op het palet is gebaseerd |
SystemColorRole | De semantische systeemrol, waaronder venstertekst, vensterachtergrond, diagramtekst, diagramachtergrond, diagramneutraal of tooltip-tekst |
ARGB | De genormaliseerde concrete kleur wanneer HasResolvedColor true is |
HasResolvedColor | Alleen True wanneer paletopzoeking, een vaste opmaakkleur of de expliciete callback een RGB-waarde heeft opgeleverd |
De retourwaarde van de functie valt samen met HasResolvedColor; de classificatie blijft beschikbaar in AResolution wanneer de functie false teruggeeft
Systeemkleurencontract
De korte overload leest nooit het huidige Windows-bureaublad en laat daarom automatische en omgevingsafhankelijke systeemkleuren onopgelost
De lange overload geeft zowel TXLSSystemColorRole als TXLSIndexedColorRole door aan ASystemResolver, zodat de aanroeper een expliciet UI-, export- of headless-renderingbeleid kan toepassen
De callback-uitvoer moet de kanaalvolgorde $AARRGGBB gebruiken; een alfabyte van nul wordt genormaliseerd naar $FF, terwijl een callback-resultaat van false het semantische token geclassificeerd maar onopgelost laat
Een Windows-COLORREF gebruikt de kanaalvolgorde $00BBGGRR en moet naar $AARRGGBB worden geconverteerd voordat de callback deze teruggeeft
Ongeldige tokens roepen de callback nooit aan, en het vaste BIFF-diagramneutrale token wordt zonder callback opgelost naar ondoorzichtig zwart
Voorbeeld
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);