Establece el color del patrón (fondo) de la celda a una de las 12 ranuras de color del tema de Office con un ajuste de tono opcional. Es el complemento de color de patrón de
Interior.SetThemeColor — úselo junto con un
Pattern no sólido para renderizar rellenos de trama o punteados que vuelven a tintar cuando Excel vuelve a aplicar el tema del libro de trabajo. Disponible desde v2.61.0 (ola D fase 4 del backlog de gráficos)
Sintaxis
procedure SetPatternThemeColor(ThemeIdx: Word; Tint: Double);
Parámetros
ThemeIdx — ranura de tema de base 0
(0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..6, 10=hlink, 11=foHlink)
Tint — ajuste de aclarado/oscurecimiento al estilo de la especificación en el rango -1.0 .. +1.0
Codificado en FullColorExt.nTintShade como un entero con signo Q15 en el registro XFExt
Observaciones
Se emiten dos cables en cada llamada para que la celda se renderice correctamente tanto en Excel 2007+ como en Excel 2003:
- El registro XF obtiene un icv indexado de mejor coincidencia para el color de patrón (ruta heredada del lector)
- El registro XFExt $087D obtiene una ranura FullColorExt para el extType
fillBg ($0005) con xclrType=3 (tema), xclrValue=ThemeIdx y nTintShade derivado de Tint
La lectura a través de
Interior.PatternColor devuelve el RGB resuelto (tema + tono aplicado), por lo que los llamadores siempre ven un LongWord concreto
Ejemplo
Renderiza una banda de advertencia rayada usando las ranuras de tema accent1 / accent2 para que los colores sigan el tema del libro de trabajo
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;
Ver también