Método ResolveIndexedColor
Clasifica un token de color indexado y resuelve un valor ARGB concreto cuando la paleta del libro o un resolutor de colores del sistema proporcionado por el llamador aporta uno
El método está disponible tanto en IXLSWorkbook como en TXLSXWorkbook y no modifica el estado del libro
Sintaxis
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;
Espacios de índices
| Espacio | Interpretación |
|---|---|
xicsPublicColorIndex | Los índices públicos de paleta 1..56 se corresponden con las ranuras de paleta BIFF 8..63; xlColorIndexAutomatic, con o sin signo, se clasifica como automático |
xicsBiffIcv | Los índices BIFF se validan con respecto al rol seleccionado: los colores de fuente y comentario usan el subconjunto IcvFont, los colores de borde y relleno usan el subconjunto IcvXF, los colores de gráfico usan el subconjunto IcvChart y la búsqueda general usa la tabla Icv completa |
xicsOoxmlIndexed | Los índices OOXML 0..63 direccionan la paleta indexada, 64 y 65 identifican el primer plano y el fondo del sistema, y los valores mayores no son válidos |
Resultado
| Campo | Significado |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem, or xickInvalid |
RawIndex | El valor de entrada sin cambios |
PaletteSlot | La ranura física de paleta de base cero, o -1 cuando el token no se basa en la paleta |
SystemColorRole | El rol de sistema semántico, incluidos texto de ventana, fondo de ventana, texto de gráfico, fondo de gráfico, neutro de gráfico o texto de información sobre herramientas |
ARGB | El color concreto normalizado cuando HasResolvedColor es true |
HasResolvedColor | True solo cuando la búsqueda en la paleta, un color de formato fijo o la devolución de llamada explícita produjo un valor RGB |
El valor devuelto por la función coincide con HasResolvedColor; la clasificación sigue disponible en AResolution cuando la función devuelve false
Contrato de colores del sistema
La sobrecarga corta nunca lee el escritorio actual de Windows y, por tanto, deja los colores automáticos y los colores del sistema dependientes del entorno sin resolver
La sobrecarga larga pasa tanto TXLSSystemColorRole como TXLSIndexedColorRole a ASystemResolver, lo que permite al llamador aplicar una directiva explícita de interfaz de usuario, exportación o renderizado sin interfaz
La salida de la devolución de llamada debe usar el orden de canales $AARRGGBB; un byte alfa cero se normaliza a $FF, mientras que un resultado false de la devolución de llamada deja el token semántico clasificado pero sin resolver
Un COLORREF de Windows usa el orden de canales $00BBGGRR y debe convertirse a $AARRGGBB antes de que la devolución de llamada lo devuelva
Los tokens no válidos nunca invocan la devolución de llamada, y el token fijo BIFF de neutro de gráfico se resuelve en negro opaco sin devolución de llamada
Ejemplo
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);