Establece el color de relleno (primer plano) de sombreado de la celda a una de las 12 ranuras de color del tema de Office con un ajuste de tono opcional. Complemento de
Interior.Color para los llamadores que quieran direccionar colores del tema de Office directamente (para que Excel pueda volver a tintar la celda con la paleta del tema del libro de trabajo) en lugar de fijar un RGB fijo. Disponible desde v2.61.0 (ola D fase 4 del backlog de gráficos)
Sintaxis
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parámetros
ThemeIdx — ranura de tema de base 0:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Corresponde al orden de tema estándar de Office usado por el lado XLSX
Tint — ajuste de aclarado/oscurecimiento al estilo de la especificación en el rango -1.0 .. +1.0
0.0 usa el color base de la ranura del tema; los valores negativos oscurecen (luminancia HSL hacia 0),
los valores positivos aclaran (luminancia HSL hacia 1). El lector de HotXLS lo codifica como un entero con signo Q15
en el campo FullColorExt.nTintShade del registro XFExt
Observaciones
El setter recorre dos rutas para que la misma celda se renderice correctamente tanto en Excel 2007+ como en Excel 2003:
- icv indexado en el registro XF (heredado) — el tema + tinte se resuelve a través de la paleta de temas BIFF del libro en un RGB, que luego elige el índice de paleta de 56 colores más cercano. Excel 97-2003 ve esta aproximación cuando se abre el archivo
- Ranura FullColorExt en XFExt $087D (Excel 2007+) — el escritor emite un registro secundario de color enriquecido con
xclrType=3 (tema), xclrValue=ThemeIdx y nTintShade derivado de Tint. Excel 2007+ usa esto para recuperar la intención exacta del tema y vuelve a teñir la celda cada vez que cambia la paleta de temas del libro, el mismo truco de compatibilidad que Microsoft usa cuando "Guardar como" degrada un .xlsx con estilo de tema a .xls
Las celdas establecidas mediante
SetThemeColor realizan viajes de ida y vuelta al cargar:
Interior.Color devuelve el RGB resuelto (tema + tono aplicado a través de la paleta de tema BIFF) para que los llamadores siempre vean un valor LongWord concreto
Las paletas de tema personalizadas establecidas en Excel mediante Diseño de página → Colores sobreviven a la carga y el guardado a través del registro de tema BIFF8 ($0892), por lo que cualquier referencia SetThemeColor del llamador se resuelve a través del tema real del libro de trabajo en lugar del esquema de Office predeterminado
Ejemplo
Rellena la fila de encabezado con accent1 y etiqueta las celdas de advertencia con un acento rojo aclarado al 50% (accent2 + tono 0.5)
var
Header : IXLSRange;
Warnings : IXLSRange;
begin
Header := Workbook.Sheets[1].Range['A1', 'G1'];
Header.Interior.SetThemeColor(4, 0.0); // accent1, base shade
Warnings := Workbook.Sheets[1].Range['G2', 'G20'];
Warnings.Interior.SetThemeColor(5, 0.5); // accent2, 50% lighter
Workbook.SaveAs('ThemeFills.xls', xlExcel97);
end;
Ver también