Documentación HotXLS

Método ResolveIndexedColor

Clasifica un token de color indexado y resuelve un valor ARGB concreto cuando la paleta del libro de trabajo o un resolutor de colores del sistema suministrado por el llamador aporta uno

El método está disponible tanto en IXLSWorkbook como en TXLSXWorkbook y no modifica el estado del libro de trabajo

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

EspacioInterpretación
xicsPublicColorIndexLos índices públicos de paleta 1..56 se asignan a las ranuras de paleta BIFF 8..63; xlColorIndexAutomatic, con o sin signo, se clasifica como automático
xicsBiffIcvLos í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
xicsOoxmlIndexedLos índices OOXML 0..63 direccionan la paleta indexada, 64 y 65 identifican el primer plano y el fondo del sistema, y los valores mayores son inválidos

Resultado

CampoSignificado
KindxickPalette, xickAutomatic, xickSystem, or xickInvalid
RawIndexEl valor de entrada sin cambios
PaletteSlotLa ranura física de paleta con base cero, o -1 cuando el token no se basa en la paleta
SystemColorRoleEl 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
ARGBEl color concreto normalizado cuando HasResolvedColor es true
HasResolvedColorTrue 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 lo 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 política 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 invá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);

Véase también