Stelt de arceringskleur (voorgrond) van de cel in op een van de 12 Office-themakleurslots met een optionele tintaanpassing. Begeleider van
Interior.Color voor aanroepers die Office-themakleuren rechtstreeks willen adresseren (zodat Excel de cel opnieuw tinteert met het werkmapthemapalet) in plaats van een vaste RGB vast te pinnen. Beschikbaar vanaf v2.61.0 (grafiek-backlog golf D fase 4)
Syntaxis
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parameters
ThemeIdx — 0-gebaseerde themaslot:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Overeenkomend met de standaard Office-themavolgorde die door de XLSX-kant wordt gebruikt
Tint — specificatie-stijl lichter/donkerder aanpassing in het bereik -1,0 .. +1,0
0,0 gebruikt de basiskleur van de themaslot; negatieve waarden donkeren af (HSL-luminantie naar 0),
positieve waarden verlichten (HSL-luminantie naar 1). HotXLS codeert dit als een Q15 signed integer
in het veld FullColorExt.nTintShade van de XFExt-record
Opmerkingen
De setter volgt twee paden zodat dezelfde cel correct wordt weergegeven in zowel Excel 2007+ als Excel 2003:
- Geïndexeerde icv op het XF-record (legacy) — het thema + tint wordt via de BIFF-themapalet van de werkmap omgezet naar een RGB, waarna de dichtstbijzijnde 56-kleurenpaletindex wordt gekozen. Excel 97-2003 ziet deze benadering wanneer het bestand wordt geopend
- FullColorExt-slot op XFExt $087D (Excel 2007+) — de schrijver geeft een rijkkleur-zijrecord uit met
xclrType=3 (thema), xclrValue=ThemeIdx en nTintShade afgeleid van Tint. Excel 2007+ gebruikt dit om de exacte themabedoeling terug te halen en herkleurt de cel telkens wanneer de werkmapthemapalet verandert — dezelfde compatibiliteitstruc die Microsoft gebruikt wanneer "Opslaan als" een .xlsx met thema-opmaak naar .xls verlaagt
Cellen die zijn ingesteld via
SetThemeColor worden bewaard bij laden:
Interior.Color retourneert de opgeloste RGB (thema + tint toegepast via het BIFF-themapalet) zodat aanroepers altijd een concreet LongWord-waarde zien
Aangepaste themapaletten ingesteld in Excel via Pagina-indeling → Kleuren overleven laden en opslaan via de BIFF8-themarecord ($0892), zodat elke aanroeper-kant SetThemeColor-verwijzing wordt opgelost via het werkelijke thema van de werkmap in plaats van het standaard Office-schema
Voorbeeld
Vult de koprijrij met accent1 en markeert waarschuwingscellen met een 50% verlicht rood accent (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