HotXLS-documentatie

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

RuimteInterpretatie
xicsPublicColorIndexOpenbare paletindexen 1..56 verwijzen naar BIFF-paletslots 8..63; een xlColorIndexAutomatic met of zonder teken wordt geclassificeerd als automatisch
xicsBiffIcvBIFF-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
xicsOoxmlIndexedOOXML-indexen 0..63 adresseren het geïndexeerde palet, 64 en 65 identificeren systeemvoorgrond en -achtergrond, en grotere waarden zijn ongeldig

Resultaat

VeldBetekenis
KindxickPalette, xickAutomatic, xickSystem of xickInvalid
RawIndexDe ongewijzigde invoerwaarde
PaletteSlotHet fysieke paletslot met basis 0, of -1 wanneer het token niet op het palet is gebaseerd
SystemColorRoleDe semantische systeemrol, waaronder venstertekst, vensterachtergrond, diagramtekst, diagramachtergrond, diagramneutraal of tooltip-tekst
ARGBDe genormaliseerde concrete kleur wanneer HasResolvedColor true is
HasResolvedColorAlleen 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);

Zie ook