Beállítja a cella árnyékolási kitöltési (előtér) szín értékét a 12 Office témaszín valamelyikére opcionális tónusmódosítással. Az
Interior.Color kísérője azon hívók számára, akik közvetlenül Office témaszíneket szeretnének megcímezni (hogy az Excel a munkafüzet témapalettájával újra árnyalhassa a cellát) rögzített RGB helyett. Elérhető v2.61.0 óta (diagram várólistás D hullám, 4. fázis)
Szintaxis
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Paraméterek
ThemeIdx — 0-alapú témahely:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Megegyezik az XLSX oldal által használt standard Office témasorrenddel
Tint — spec-stílusú világosabb/sötétebb beállítás a -1.0 .. +1.0 tartományban
A 0.0 a témahely alap színét használja; a negatív értékek sötétítenek (HSL luminancia 0 felé),
a pozitív értékek világosítanak (HSL luminancia 1 felé). A HotXLS olvasó ezt Q15 előjeles egészként kódolja
az XFExt rekord FullColorExt.nTintShade mezőjébe
Megjegyzések
A beállító két úton jár, hogy ugyanaz a cella helyesen jelenjen meg Excel 2007+ és Excel 2003 rendszerekben egyaránt:
- Indexelt icv az XF rekordban (örökölt) — a téma és a tónus a munkafüzet BIFF témapalettáján keresztül RGB-vé oldódik fel, majd ez választja ki a legközelebbi 56 színes palettaindexet. Az Excel 97-2003 ezt a közelítést látja a fájl megnyitásakor
- FullColorExt hely az XFExt $087D-ben (Excel 2007+) — az író egy gazdag színű mellékrekordot emittál
xclrType=3 (téma), xclrValue=ThemeIdx és nTintShade értékekkel, amelyeket a Tint-ből vezet le. Az Excel 2007+ ezt használja a pontos témaszándék visszaállításához, és újraszínezi a cellát, amikor a munkafüzet témapalettája megváltozik — ugyanaz a visszafelé kompatibilitási trükk, amelyet a Microsoft használ, amikor a "Save As" egy témázott .xlsx fájlt .xls-re minősít vissza
A
SetThemeColor segítségével beállított cellák oda-vissza konvertálnak betöltéskor: az
Interior.Color a feloldott RGB-t adja vissza (téma + tónus alkalmazva a BIFF témapalettán), így a hívók mindig konkrét LongWord értéket látnak
Az Excelben a Lapelrendezés → Színek menüpontban beállított egyéni témapalettákok megmaradnak betöltés és mentés során a BIFF8 Theme ($0892) rekordon keresztül, így a hívói oldali SetThemeColor hivatkozás az alapértelmezett Office séma helyett a munkafüzet tényleges témáján keresztül oldódik fel
Példa
Accent1-gyel tölti ki a fejlécsort, és 50%-kal világosított piros akcentussal jelöli a figyelmeztető cellákat (accent2 + 0,5 tónus)
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;
Lásd még