ResolveIndexedColor-Methode
Klassifiziert ein Token für eine indizierte Farbe und löst einen konkreten ARGB-Wert auf, wenn die Arbeitsmappenpalette oder ein vom Aufrufer bereitgestellter Systemfarben-Auflöser einen liefert
Die Methode ist sowohl für IXLSWorkbook als auch für TXLSXWorkbook verfügbar und ändert den Arbeitsmappenzustand nicht
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;
Indexräume
| Raum | Interpretation |
|---|---|
xicsPublicColorIndex | Öffentliche Palettenindizes 1..56 werden auf BIFF-Palettenslots 8..63 abgebildet; ein vorzeichenbehafteter oder vorzeichenloser xlColorIndexAutomatic wird als automatisch klassifiziert |
xicsBiffIcv | BIFF-Indizes werden gegen die gewählte Rolle validiert: Schrift- und Kommentarfarben verwenden die IcvFont-Teilmenge, Rahmen- und Füllfarben die IcvXF-Teilmenge, Diagrammfarben die IcvChart-Teilmenge, und die allgemeine Suche verwendet die vollständige Icv-Tabelle |
xicsOoxmlIndexed | OOXML-Indizes 0..63 adressieren die indizierte Palette, 64 und 65 identifizieren System-Vordergrund und -Hintergrund, und größere Werte sind ungültig |
Ergebnis
| Feld | Bedeutung |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem oder xickInvalid |
RawIndex | Der unveränderte Eingabewert |
PaletteSlot | Der nullbasierte physische Palettenslot oder -1, wenn das Token nicht palettenbasiert ist |
SystemColorRole | Die semantische Systemrolle, einschließlich Fenstertext, Fensterhintergrund, Diagrammtext, Diagrammhintergrund, Diagrammneutral oder QuickInfo-Text |
ARGB | Die normalisierte konkrete Farbe, wenn HasResolvedColor true ist |
HasResolvedColor | Nur true, wenn ein Palettennachschlag, eine Festformatfarbe oder der explizite Rückruf einen RGB-Wert ergeben hat |
Der Rückgabewert der Funktion entspricht HasResolvedColor; die Klassifikation bleibt in AResolution verfügbar, wenn die Funktion false zurückgibt
Systemfarben-Kontrakt
Die kurze Überladung liest nie den aktuellen Windows-Desktop und lässt daher automatische und umgebungsabhängige Systemfarben unaufgelöst
Die lange Überladung übergibt sowohl TXLSSystemColorRole als auch TXLSIndexedColorRole an ASystemResolver, sodass der Aufrufer eine explizite UI-, Export- oder Headless-Rendering-Richtlinie anwenden kann
Die Rückrufausgabe muss die Kanalreihenfolge $AARRGGBB verwenden; ein Alpha-Byte von null wird auf $FF normalisiert, während ein Rückrufergebnis von false das semantische Token klassifiziert, aber unaufgelöst lässt
Ein Windows-COLORREF verwendet die Kanalreihenfolge $00BBGGRR und muss in $AARRGGBB konvertiert werden, bevor der Rückruf ihn zurückgibt
Ungültige Tokens rufen den Rückruf nie auf, und das feste BIFF-Diagrammneutral-Token wird ohne Rückruf zu opakem Schwarz aufgelöst
Beispiel
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);