Ustawia kolor wypełnienia cieniowania komórki (pierwszy plan) do jednego z 12 slotów kolorów motywu Office z opcjonalnym dostosowaniem odcienia. Towarzysz
Interior.Color dla wywołujących, którzy chcą bezpośrednio adresować kolory motywu Office (dzięki czemu Excel może zmienić odcień komórki za pomocą palety motywu skoroszytu) zamiast przypinać stały RGB. Dostępne od v2.61.0 (faza 4 paczki D wykresu)
Składnia
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parametry
ThemeIdx — slot motywu od zera:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Odpowiada standardowej kolejności motywu Office używanej przez stronę XLSX
Tint — dostosowanie jaśniejszy/ciemniejszy w stylu spec w zakresie -1.0 .. +1.0
0.0 używa podstawowego koloru slotu motywu; wartości ujemne ciemnieją (jasność HSL ku 0),
wartości dodatnie rozjaśniają (jasność HSL ku 1). Czytnik HotXLS koduje to jako 15-bitową liczbę całkowitą ze znakiem
w polu FullColorExt.nTintShade rekordu XFExt
Uwagi
Ustawiacz przechodzi dwiema ścieżkami, dzięki czemu ta sama komórka renderuje się poprawnie zarówno w Excel 2007+, jak i Excel 2003:
- Indeksowany icv w rekordzie XF (stare) — motyw + tint jest rozwiązywany przez paletę motywu BIFF skoroszytu do RGB, a następnie wybierany jest najbliższy indeks palety 56 kolorów. Excel 97-2003 widzi to przybliżenie po otwarciu pliku
- Slot FullColorExt w XFExt $087D (Excel 2007+) — zapisujący generuje bogaty rekord boczny koloru z
xclrType=3 (motyw), xclrValue=ThemeIdx i nTintShade wyprowadzonym z Tint. Excel 2007+ używa tego do odzyskania dokładnego zamiaru motywu i ponownego zabarwienia komórki, gdy paleta motywu skoroszytu się zmienia — to ten sam trik zgodności wstecznej, którego Microsoft używa, gdy „Save As” degraduje plik .xlsx ze stylem motywu do .xls
Komórki ustawione przez
SetThemeColor są przesyłane po załadowaniu:
Interior.Color zwraca rozwiązany RGB (motyw + odcień zastosowany przez paletę motywu BIFF), dzięki czemu wywołujący zawsze widzą konkretną wartość LongWord
Niestandardowe palety motywu ustawione w programie Excel przez Układ strony → Kolory przetrwają załadowanie i zapis przez rekord BIFF8 Theme ($0892), więc każde odwołanie SetThemeColor po stronie wywołującego jest rozwiązywane przez rzeczywisty motyw skoroszytu zamiast domyślnego schematu Office
Przykład
Wypełnia wiersz nagłówka kolorem accent1 i oznacza komórki ostrzeżeń z 50% rozjaśnionym czerwonym akcentem (accent2 + odcień 0.5)
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;
Zobacz też