Define a cor do padrão (plano de fundo) da célula em um dos 12 slots de cor de tema do Office com um ajuste de tonalidade opcional. Este é o complemento de cor de padrão de
Interior.SetThemeColor — use-o junto com um
Pattern não sólido para renderizar preenchimentos hachurados/pontilhados que retonalizam quando o Excel reaplicar o tema da pasta de trabalho. Disponível desde v2.61.0 (backlog de gráfico onda D fase 4)
Sintaxe
procedure SetPatternThemeColor(ThemeIdx: Word; Tint: Double);
Parâmetros
ThemeIdx — slot de tema baseado em 0 (0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..6, 10=hlink, 11=foHlink)
Tint — ajuste de mais claro/mais escuro no intervalo -1.0 .. +1.0. Codificado em FullColorExt.nTintShade como um inteiro com sinal Q15 no registro XFExt
Observações
Dois fios são emitidos para cada chamada para que a célula seja renderizada corretamente tanto no Excel 2007+ quanto no Excel 2003:
- O registro XF recebe um icv indexado de melhor correspondência para a cor do padrão (caminho legado do leitor)
- O registro XFExt $087D recebe um slot FullColorExt para o extType
fillBg ($0005) com xclrType=3 (tema), xclrValue=ThemeIdx e nTintShade derivado de Tint
A leitura de volta via
Interior.PatternColor retorna o RGB resolvido (tema + tonalidade aplicados), portanto os chamadores sempre veem um LongWord concreto
Exemplo
Renderiza uma faixa de aviso listrada usando os slots de tema accent1 / accent2 para que as cores acompanhem o tema da pasta de trabalho
var
Stripes: IXLSRange;
begin
Stripes := Workbook.Sheets[1].Range['B2', 'B10'];
Stripes.Interior.Pattern := xlPatternGray25;
Stripes.Interior.SetThemeColor(4, 0.4); // fill foreground (accent1, lighter)
Stripes.Interior.SetPatternThemeColor(5, - 0.25); // pattern color (accent2, darker)
Workbook.SaveAs('PatternThemeFills.xls', xlExcel97);
end;
Veja também