Stelt de arceringsopvulkleur (voorgrond) van de cel in op één van de 12 Office-themakleursloten met een optionele tintaanpassing. Companion van
Interior.Color voor aanroepers die Office-themakleuren direct willen aanspreken (zodat Excel de cel opnieuw kan kleuren met het themapalet van de werkmap) in plaats van een vaste RGB-waarde vast te leggen. Beschikbaar sinds v2.61.0 (chart backlog wave D fase 4)
Syntaxis
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parameters
ThemeIdx — 0-based theme slot:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Volgt de standaard Office-themavolgorde zoals de XLSX-kant die gebruikt
Tint — aanpassing lichter/donkerder in spec-stijl, in het bereik -1.0 .. +1.0
0.0 gebruikt de basiskleur van het themaslot; negatieve waarden maken donkerder (HSL-luminantie richting 0),
positieve waarden lichter (HSL-luminantie richting 1). De HotXLS-lezer codeert dit als een Q15-signed
integer in het veld FullColorExt.nTintShade van het XFExt-record
Opmerkingen
De setter doorloopt twee paden zodat dezelfde cel correct wordt weergegeven in zowel Excel 2007+ als Excel 2003:
- Indexed icv on the XF record (legacy) — wordt het thema + tint via het BIFF-themapalet van de werkmap naar een RGB herleid, waarna de dichtstbijzijnde 56-kleur-paletindex wordt gekozen. Excel 97-2003 ziet deze benadering wanneer het bestand wordt geopend
- FullColorExt slot on XFExt $087D (Excel 2007+) — the writer emits a rich-color side record with
xclrType=3 (theme), xclrValue=ThemeIdx, and nTintShade derived from Tint. Excel 2007+ uses this to recover the exact theme intent and re-tints the cell whenever the workbook theme palette changes — dezelfde backward-compatibility-truc die Microsoft toepast wanneer Opslaan als een thema-opgemaakt .xlsx terugzet naar .xls
Cells set via
SetThemeColor round-trip on load:
Interior.Color geeft de herleide RGB terug (thema + tint toegepast via het BIFF-themapalet), zodat aanroepers altijd een concrete LongWord-waarde zien
Custom theme palettes set in Excel via Page Layout → Colors survive load en save through the BIFF8 Theme ($0892) record, so any caller-side SetThemeColor verwijzing wordt herleid via het werkelijke thema van de werkmap in plaats van het standaardschema van Office
Voorbeeld
Vult de koprij met accent1 en markeert waarschuwingscellen met een 50% lichter gemaakte rode accentkleur (accent2 + 0.5 tint)
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;
Zie ook