Método BuildBiffPalettePlan
Constrói um plano determinístico somente leitura para representar cores RGB diretas e cores de tema resolvidas nos 56 slots físicos da paleta BIFF
O método está disponível tanto em IXLSWorkbook quanto em TXLSXWorkbook e nunca altera entradas da paleta, estilos, células, contagens de cores personalizadas ou comportamento de salvamento
Sintaxe
function BuildBiffPalettePlan: TXLSBiffPalettePlan;
Plano de slots
Slots sempre contém 56 entradas em ordem de índice público de 1 a 56 e em ordem de slot físico de 8 a 63
| Campo | Significado |
|---|---|
SourceARGB | A cor normalizada atualmente armazenada no slot da paleta |
TargetARGB | A cor proposta para o slot sem aplicá-la |
DefinitionCount e ReferenceCount | Os consumidores indexados herdados de ScanIndexedColorUsage |
Kinds | As categorias de consumidores indexados que protegem o slot |
Locked | True quando o slot de origem deve permanecer inalterado |
Changed | True quando o destino proposto difere da cor de origem |
Mapeamentos de destino
Targets agrega cores iguais e registra contagem de definições, contagem de referências renderizadas, categorias de consumidores, peso de frequência efetivo, índices públicos e físicos selecionados, ARGB mapeado, erro quadrático OKLab e status de correspondência exata
Referências renderizadas determinam o peso efetivo quando presentes; caso contrário, definições armazenadas mantêm cores não referenciadas representadas no plano
Cores diretas e cores de tema resolvidas de fontes, preenchimentos, gradientes, bordas, estilos diferenciais, barras de dados e escalas de cores participam do planejamento, enquanto cores indexadas, automáticas, inválidas e parcialmente transparentes não se tornam destinos
Comportamento de planejamento
Cores exatas já existentes na paleta são retidas em seu slot correspondente mais baixo e consumidores indexados bloqueiam seus slots de origem antes que qualquer slot livre seja considerado
Quando todos os destinos exclusivos cabem, os slots livres recebem cores exatas em ordem determinística de ARGB
Quando há mais cores do que slots livres, uma passada de agrupamento OKLab ponderada por frequência, com iterações fixas, escolhe as cores de destino restantes, enquanto os slots bloqueados e os slots exatos retidos permanecem fixos
Mapeamentos finais com distância igual usam o menor índice público da paleta
Identidade e estatísticas do plano
SourcePaletteGeneration e SourcePaletteHash identificam o instantâneo da paleta a partir do qual o plano foi construído
LockedSlotCount, ChangedSlotCount, TotalTargetWeight, ExactTargetWeight, WeightedError, MaxDistanceSquared e Quantized resumem o resultado para inspeção e decisões de política
Exemplo
Plan := Workbook.BuildBiffPalettePlan;
if Plan.Quantized then
LogPaletteError(Plan.WeightedError);
for I := 0 to High(Plan.Slots) do
if Plan.Slots[I].Changed then
PreviewPaletteChange(Plan.Slots[I]);