HotXLS-dokumentation

Metoden ResolveIndexedColor

Klassificerar en indexfärgstoken och löser ett konkret ARGB-värde när arbetsbokens palett eller en anroparen tillhandahållen systemfärglösare ger ett sådant

Metoden är tillgänglig i både IXLSWorkbook och TXLSXWorkbook och ändrar inte arbetsbokens tillstånd

Syntax

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;

Indexrymder

RymdTolkning
xicsPublicColorIndexPublika palettindex 1..56 mappas till BIFF-palettplatser 8..63; signerat eller osignerat xlColorIndexAutomatic klassificeras som automatiskt
xicsBiffIcvBIFF-index valideras mot den valda rollen: teckensnitts- och kommentarfärger använder delmängden IcvFont, kantlinje- och fyllnadsfärger använder delmängden IcvXF, diagramfärger använder delmängden IcvChart, och allmän uppslagning använder den kompletta Icv-tabellen
xicsOoxmlIndexedOOXML-index 0..63 adresserar den indexerade paletten, 64 och 65 identifierar systemförgrund och systembakgrund, och större värden är ogiltiga

Resultat

FältBetydelse
KindxickPalette, xickAutomatic, xickSystem eller xickInvalid
RawIndexDet oförändrade indatavärdet
PaletteSlotDen nollbaserade fysiska palettplatsen, eller -1 när tokenen inte är palettbaserad
SystemColorRoleDen semantiska systemrollen, till exempel fönstertext, fönsterbakgrund, diagramtext, diagrambakgrund, diagramneutral ellerVerktygstipstext
ARGBDen normaliserade konkreta färgen när HasResolvedColor är sant
HasResolvedColorSant endast när palettuppslagning, en fast formatfärg eller det explicita återanropet gav ett RGB-värde

Funktionens returvärde motsvarar HasResolvedColor; klassificeringen förblir tillgänglig i AResolution när funktionen returnerar false

Kontrakt för systemfärger

Den korta överlagringen läser aldrig det aktuella Windows-skrivbordet och lämnar därför automatiska och miljöberoende systemfärger olösta

Den långa överlagringen skickar både TXLSSystemColorRole och TXLSIndexedColorRole till ASystemResolver, så att anroparen kan tillämpa en explicit princip för användargränssnitt, export eller headless-rendering

Återanropets utdata måste använda kanalordningen $AARRGGBB; en alfabyte med noll normaliseras till $FF, medan ett återanropsresultat av false lämnar den semantiska tokenen klassificerad men olöst

En Windows COLORREF använder kanalordningen $00BBGGRR och måste konverteras till $AARRGGBB innan återanropet returnerar den

Ogiltiga token anropar aldrig återanropet, och den fasta BIFF-tokenen för diagramneutral löses till opakt svart utan återanrop

Exempel

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

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

Se även