HotXLS dokumentáció

SetThemeColor metódus (kitöltés)

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:
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