Hücre gölgeleme dolgusunun (ön plan) rengini, isteğe bağlı ton ayarıyla 12 Office tema renk yuvasından birine ayarlar. Karşılığı:
Interior.Color — sabit bir RGB'yi kilitlemek yerine (böylece Excel, hücreyi çalışma kitabının tema paletiyle yeniden toneleyebilir) Office tema renklerine doğrudan hitap etmek isteyen çağıranlar için. v2.61.0'dan beri mevcut (chart backlog wave D phase 4)
Sözdizimi
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parametreler
ThemeIdx — 0-based theme slot:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Matches the standard Office theme order used by the XLSX side
Tint — spec-style lighter/darker adjustment in the range -1.0 .. +1.0
0.0 tema yuvasının temel rengini kullanır; negatif değerler koyulaştırır (HSL parlaklığı 0'a doğru), pozitif değerler aydınlatır (HSL parlaklığı 1'e doğru). HotXLS okuyucusu bunu FullColorExt.nTintShade field of the XFExt record
Açıklamalar
Ayarlayıcı iki yolu izler; böylece aynı hücre hem Excel 2007+'da hem de Excel 2003'te doğru işlenir:
- Indexed icv on the XF record (legacy) — tema + ton, çalışma kitabının BIFF tema paleti üzerinden bir RGB'ye çözümlenir; bu RGB de en yakın 56 renklik palet dizinini seçer. Excel 97-2003, dosyayı açtığında bu yaklaşık değeri görür
- 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+ bunu tam tema niyetini geri kazanmak için kullanır ve çalışma kitabının tema paleti her değiştiğinde hücreyi yeniden tonlar — Microsoft'un tema stilli bir .xlsx'i "Save As" ile .xls'e indirgerken kullandığı geriye dönük uyumluluk numarasının aynısı
Cells set via
SetThemeColor round-trip on load:
Interior.Color çözümlenmiş RGB'yi (BIFF tema paleti üzerinden tema + ton uygulanmış) döndürür; böylece çağıranlar her zaman somut bir LongWord değeri görür
Custom theme palettes set in Excel via Page Layout → Colors BIFF8 Theme ($0892) kaydı üzerinden açma ve kaydetmede hayatta kalır; böylece çağıran tarafındaki herhangi bir SetThemeColor başvurusu, varsayılan Office şeması yerine çalışma kitabının gerçek temasından çözümlenir
Örnek
Bu örnek, başlık satırını accent1 ile doldurur ve dikkat gerektiren hücreleri %50 açılmış kırmızı accent ile (accent2 + 0.5 ton) işaretler
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;
Ayrıca bkz.