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
| Rymd | Tolkning |
|---|---|
xicsPublicColorIndex | Publika palettindex 1..56 mappas till BIFF-palettplatser 8..63; signerat eller osignerat xlColorIndexAutomatic klassificeras som automatiskt |
xicsBiffIcv | BIFF-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 |
xicsOoxmlIndexed | OOXML-index 0..63 adresserar den indexerade paletten, 64 och 65 identifierar systemförgrund och systembakgrund, och större värden är ogiltiga |
Resultat
| Fält | Betydelse |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem eller xickInvalid |
RawIndex | Det oförändrade indatavärdet |
PaletteSlot | Den nollbaserade fysiska palettplatsen, eller -1 när tokenen inte är palettbaserad |
SystemColorRole | Den semantiska systemrollen, till exempel fönstertext, fönsterbakgrund, diagramtext, diagrambakgrund, diagramneutral ellerVerktygstipstext |
ARGB | Den normaliserade konkreta färgen när HasResolvedColor är sant |
HasResolvedColor | Sant 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);