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ço | Interpretação |
|---|---|
xicsPublicColorIndex | Os índices públicos da paleta 1..56 mapeiam para ranhuras da paleta BIFF 8..63; xlColorIndexAutomatic, com ou sem sinal, é classificado como automático |
xicsBiffIcv | Os í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 |
xicsOoxmlIndexed | Os í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
| Campo | Significado |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem ou xickInvalid |
RawIndex | O valor de entrada inalterado |
PaletteSlot | A ranhura física da paleta de base zero, ou -1 quando o token não é baseado em paleta |
SystemColorRole | A 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 |
ARGB | A cor concreta normalizada quando HasResolvedColor é true |
HasResolvedColor | True 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);