Setează culoarea de umplere (prim-plan) a celulei la unul dintre cele 12 sloturi de culori temă Office cu o ajustare opțională de nuanță. Companion al
Interior.Color pentru apelurile care doresc să adreseze direct culorile temei Office (astfel Excel poate re-nuanța celula cu paleta de temă a registrului de lucru) în loc să fixeze o valoare RGB. Disponibil din v2.61.0 (val D faza 4 acumulare diagrame)
Sintaxă
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parametri
ThemeIdx — slot temă bazat pe 0:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Corespunde ordinii standard de temă Office utilizate de partea XLSX
Tint — ajustare mai deschis/mai închis conform specificațiilor în intervalul -1,0 .. +1,0
0,0 utilizează culoarea de bază a slotului de temă; valorile negative întunecă (luminanța HSL spre 0),
valorile pozitive deschid (luminanța HSL spre 1). HotXLS codifică aceasta ca întreg semnat Q15
în câmpul FullColorExt.nTintShade al înregistrării XFExt
Observații
Setorul parcurge două căi astfel încât aceeași celulă să se redeze corect atât în Excel 2007+, cât și în Excel 2003:
- icv indexat pe înregistrarea XF (vechi) — tema + tint se rezolvă prin paleta de teme BIFF a registrului de lucru într-un RGB, care apoi alege cel mai apropiat index din paleta de 56 de culori. Excel 97-2003 vede această aproximație când fișierul este deschis
- slot FullColorExt pe XFExt $087D (Excel 2007+) — scriitorul emite o înregistrare secundară bogată de culoare cu
xclrType=3 (temă), xclrValue=ThemeIdx și nTintShade derivat din Tint. Excel 2007+ folosește asta pentru a recupera intenția exactă a temei și pentru a reaplica nuanța celulei ori de câte ori paleta de teme a registrului de lucru se schimbă — același truc de compatibilitate inversă pe care Microsoft îl folosește când "Save As" retrogradează un .xlsx stilizat cu temă în .xls
Celulele setate prin
SetThemeColor fac dus-întors la încărcare:
Interior.Color returnează valoarea RGB rezolvată (temă + nuanță aplicate prin paleta de temă BIFF) astfel apelurile văd întotdeauna o valoare LongWord concretă
Paletele de temă personalizate setate în Excel prin Aspect pagină → Culori supraviețuiesc la încărcare și salvare prin înregistrarea BIFF8 Theme ($0892), astfel orice referință SetThemeColor din partea apelantului se rezolvă prin tema reală a registrului de lucru în loc de schema implicită Office
Exemplu
Umple rândul antet cu accent1 și marchează celulele de avertizare cu un accent roșu deschis cu 50% (accent2 + nuanță 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;
Vedeți și