HotXLS-dokumentation

ResolveIndexedColor metode

Klassificerer et indekseret farvetoken og opløser en konkret ARGB-værdi, når projektmappens palet eller en kalder-leveret systemfarveopløser giver en

Metoden er tilgængelig på både IXLSWorkbook og TXLSXWorkbook og ændrer ikke projektmappens tilstand

Syntaks

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;

Indeksrum

RumFortolkning
xicsPublicColorIndexOffentlige paletindeks 1..56 afbildes til BIFF-paletslots 8..63; med eller uden fortegn xlColorIndexAutomatic klassificeres som automatisk
xicsBiffIcvBIFF-indekser valideres mod den valgte rolle: skrifttype- og kommentarfarver bruger IcvFont-delmængden, kant- og fyldfarver bruger IcvXF-delmængden, diagramfarver bruger IcvChart-delmængden, og generel opslag bruger den komplette den komplette Icv-tabel
xicsOoxmlIndexedOOXML-indekser 0..63 adresserer den indekserede palet, 64 og 65 identificerer systemforgrund og -baggrund, og større værdier er ugyldige

Resultat

FeltBetydning
KindxickPalette, xickAutomatic, xickSystem eller xickInvalid
RawIndexDen uændrede inputværdi
PaletteSlotDet nulbaserede fysiske paletslot eller -1, når tokenet ikke er paletbaseret
SystemColorRoleDen semantiske systemrolle, herunder vinduets tekst, vinduets baggrund, diagramtekst, diagrambaggrund, diagramneutral eller værktøjstiptekst
ARGBDen normaliserede konkrete farve, når HasResolvedColor er true
HasResolvedColorTrue kun, når paletopslag, en fast formatfarve eller det eksplicitte callback har frembragt en RGB-værdi

Funktionens returværdi matcher HasResolvedColor; klassifikationen forbliver tilgængelig i AResolution, når funktionen returnerer false

Systemfarvekontrakt

Den korte overload læser aldrig det aktuelle Windows-skrivebord og efterlader derfor automatiske og miljøafhængige systemfarver uopløst

Den lange overload sender både TXLSSystemColorRole og TXLSIndexedColorRole til ASystemResolver, så kalderen kan anvende en eksplicit UI-, eksport- eller headless-renderingspolitik

Callback-output skal bruge $AARRGGBB-kanalrækkefølge; en nul-alphabyte normaliseres til $FF, mens et callback-resultat af false efterlader det semantiske token klassificeret men uopløst

En Windows COLORREF bruger $00BBGGRR-kanalrækkefølge og skal konverteres til $AARRGGBB, før callback returnerer den

Ugyldige tokens kalder aldrig callback, og det faste BIFF-diagramneutral-token opløses til uigennemsigtig sort uden callback

Eksempel

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

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

Se også