Documentação do HotXLS

Método ResolveIndexedColor

Classifica um token de cor indexada e resolve um valor ARGB concreto quando a paleta do livro de trabalho ou um resolvedor de cores de sistema fornecido pelo chamador fornece um

O método está disponível tanto em IXLSWorkbook como em TXLSXWorkbook e não modifica o estado do livro de trabalho

Sintaxe

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;

Espaços de índice

EspaçoInterpretação
xicsPublicColorIndexOs índices públicos da paleta 1..56 mapeiam para ranhuras da paleta BIFF 8..63; xlColorIndexAutomatic, com ou sem sinal, é classificado como automático
xicsBiffIcvOs índices BIFF são validados em relação à função selecionada: as cores de tipo de letra e comentário utilizam o subconjunto IcvFont, as cores de limite e preenchimento utilizam o subconjunto IcvXF, as cores de gráfico utilizam o subconjunto IcvChart e a pesquisa geral utiliza a tabela Icv completa
xicsOoxmlIndexedOs índices OOXML 0..63 endereçam a paleta indexada, 64 e 65 identificam o primeiro plano e o fundo de sistema, e valores maiores são inválidos

Resultado

CampoSignificado
KindxickPalette, xickAutomatic, xickSystem ou xickInvalid
RawIndexO valor de entrada inalterado
PaletteSlotA ranhura física da paleta de base zero, ou -1 quando o token não é baseado em paleta
SystemColorRoleA função de sistema semântica, incluindo texto da janela, fundo da janela, texto do gráfico, fundo do gráfico, neutro do gráfico ou texto da descrição
ARGBA cor concreta normalizada quando HasResolvedColor é true
HasResolvedColorTrue apenas quando a pesquisa na paleta, uma cor de formato fixo ou a callback explícita produziu um valor RGB

O valor devolvido pela função corresponde a HasResolvedColor; a classificação permanece disponível em AResolution quando a função devolve false

Contrato de cores de sistema

A sobrecarga curta nunca lê o ambiente de trabalho atual do Windows e, por isso, deixa por resolver as cores automáticas e dependentes do ambiente de sistema

A sobrecarga longa passa TXLSSystemColorRole e TXLSIndexedColorRole a ASystemResolver, permitindo que o chamador aplique uma política explícita de interface do utilizador, exportação ou renderização sem interface gráfica

O resultado da callback tem de utilizar a ordem de canais $AARRGGBB; um byte alfa zero é normalizado para $FF, enquanto um resultado false da callback deixa o token semântico classificado, mas por resolver

Um COLORREF do Windows utiliza a ordem de canais $00BBGGRR e tem de ser convertido para $AARRGGBB antes de a callback o devolver

Os tokens inválidos nunca invocam a callback, e o token neutro de gráfico fixo do BIFF resolve-se para preto opaco sem callback

Exemplo

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

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

Veja também