Establece el color de relleno (primer plano) de sombreado de celda en uno de los 12 slots de color de tema de Office con un ajuste de tono opcional. Complemento de
Interior.Color para los llamadores que deseen direccionar colores de tema de Office directamente (de modo que Excel pueda volver a aplicar el tono de la celda con la paleta de temas del libro) en lugar de fijar un RGB. Disponible desde v2.61.0 (ola D de la lista de espera de gráficos, fase 4)
Sintaxis
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parámetros
ThemeIdx — slot de tema de base 0:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Coincide con el orden de tema de Office estándar usado por el lado XLSX
Tint — ajuste de aclarado/oscurecido en el rango -1,0 .. +1,0
0,0 usa el color base del slot de tema; los valores negativos oscurecen (luminancia HSL hacia 0),
los positivos aclaran (luminancia HSL hacia 1). HotXLS lo codifica como entero con signo Q15 en el campo FullColorExt.nTintShade del registro XFExt
Observaciones
El establecedor sigue dos rutas para que la misma celda se represente correctamente tanto en Excel 2007+ como en Excel 2003:
- icv indexado en el registro XF (heredado) — el tema + matiz se resuelve a través de la paleta de temas BIFF del libro hasta un RGB, que luego selecciona 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 lateral de color rico con
xclrType=3 (tema), xclrValue=ThemeIdx y nTintShade derivado de Tint. Excel 2007+ usa esto para recuperar la intención exacta del tema y volver a teñir la celda cada vez que cambia la paleta de temas del libro — el mismo truco de compatibilidad hacia atrás que usa Microsoft cuando "Guardar como" degrada un .xlsx con estilo de tema a .xls
Las celdas establecidas mediante
SetThemeColor realizan un viaje de ida y vuelta en la carga:
Interior.Color devuelve el RGB resuelto (tema + tono aplicados a través de la paleta de tema BIFF) de modo que los llamadores siempre ven 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 BIFF8 Theme ($0892), de modo que cualquier referencia SetThemeColor del lado del llamador se resuelve a través del tema real del libro en lugar del esquema predeterminado de Office
Ejemplo
Rellena la fila de encabezado con accent1 y etiqueta las celdas de advertencia con un rojo accent2 con un 50 % de tono claro
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;
Véase también