Dokumentácia HotXLS

Metóda SetThemeColor

Nastaví farbu tieňovacej výplne bunky (popredie) na jeden z 12 slotov farby témy Office s voliteľnou úpravou odtieňa. Sprievodca pre Interior.Color pre volajúcich, ktorí chcú priamo adresovať farby témy Office (aby Excel mohol znova odtienil bunku paletou témy zošita) namiesto zadávania pevného RGB. Dostupné od v2.61.0 (vlna D fáza 4 nevybavenej grafu)

Syntax

procedure SetThemeColor(ThemeIdx: Word; Tint: Double);

Parametre

ThemeIdx — slot témy od 0: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink Zodpovedá štandardnému poriadku tém Office používanému na strane XLSX
Tint — úprava svetlejšia/tmavšia podľa špecifikácie v rozsahu -1,0 .. +1,0 0,0 používa základnú farbu slotu témy; záporné hodnoty stmievajú (svetlosť HSL smerom k 0), kladné hodnoty zosvetľujú (svetlosť HSL smerom k 1). HotXLS čítač kóduje toto ako celé číslo Q15 so znamienkom v poli FullColorExt.nTintShade záznamu XFExt

Poznámky

Nastavovač prechádza dvoma cestami, aby tá istá bunka vykresľovala správne v Exceli 2007+ aj v Exceli 2003:
Bunky nastavené cez SetThemeColor prechádzajú okruhom pri načítaní: Interior.Color vracia vyriešené RGB (téma + odtieň aplikovaný cez BIFF paletu témy), takže volajúci vždy vidia konkrétny LongWord
Vlastné palety tém nastavené v Exceli cez Rozloženie strany → Farby prežijú načítanie a uloženie cez záznam BIFF8 Theme ($0892), takže akýkoľvek odkaz SetThemeColor na strane volajúceho sa rieši cez skutočnú tému zošita a nie cez predvolené schémy Office

Príklad

Vyplní riadok hlavičky farbou accent1 a označí varovné bunky so 50% zosvetleným červeným akcentom (accent2 + odtieň 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;

Pozri tiež