Documentação do HotXLS

Método ResolveIndexedColor

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

O método está disponível tanto em IXLSWorkbook quanto em TXLSXWorkbook e não modifica o estado da pasta 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
xicsPublicColorIndexÍndices públicos da paleta 1..56 mapeiam para slots da paleta BIFF 8..63; xlColorIndexAutomatic, com ou sem sinal, é classificado como automático
xicsBiffIcvÍndices BIFF são validados em relação à função selecionada: cores de fonte e comentário usam o subconjunto IcvFont, cores de borda e preenchimento usam o subconjunto IcvXF, cores de gráfico usam o subconjunto IcvChart e a pesquisa geral usa a tabela Icv completa
xicsOoxmlIndexedÍndices OOXML 0..63 endereçam a paleta indexada, 64 e 65 identificam primeiro plano e plano de fundo do sistema, e valores maiores são inválidos

Resultado

CampoSignificado
KindxickPalette, xickAutomatic, xickSystem ou xickInvalid
RawIndexO valor de entrada inalterado
PaletteSlotO slot físico da paleta com base zero, ou -1 quando o token não é baseado em paleta
SystemColorRoleA função de sistema semântica, incluindo texto da janela, plano de fundo da janela, texto do gráfico, plano de fundo do gráfico, neutro do gráfico ou texto da dica de ferramenta
ARGBA cor concreta normalizada quando HasResolvedColor é true
HasResolvedColorTrue somente quando a pesquisa na paleta, uma cor de formato fixo ou o retorno de chamada explícito produziu um valor RGB

O valor de retorno da função corresponde a HasResolvedColor; a classificação permanece disponível em AResolution quando a função retorna false

Contrato de cores do sistema

A sobrecarga curta nunca lê a área de trabalho atual do Windows e, portanto, deixa as cores automáticas e dependentes do ambiente do sistema sem resolver

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

A saída do retorno de chamada deve usar a ordem de canais $AARRGGBB; um byte alfa zero é normalizado para $FF, enquanto um resultado false do retorno de chamada deixa o token semântico classificado, mas sem resolver

Um COLORREF do Windows usa a ordem de canais $00BBGGRR e deve ser convertido para $AARRGGBB antes que o retorno de chamada o retorne

Tokens inválidos nunca invocam o retorno de chamada, e o token neutro de gráfico fixo do BIFF é resolvido para preto opaco sem retorno de chamada

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