Documentație HotXLS

Metoda SetThemeColor

Setează culoarea de umplere (prim-plan) a celulei la unul dintre cele 12 sloturi de culori temă Office cu o ajustare opțională de nuanță. Companion al Interior.Color pentru apelurile care doresc să adreseze direct culorile temei Office (astfel Excel poate re-nuanța celula cu paleta de temă a registrului de lucru) în loc să fixeze o valoare RGB. Disponibil din v2.61.0 (val D faza 4 acumulare diagrame)

Sintaxă

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

Parametri

ThemeIdx — slot temă bazat pe 0: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink Corespunde ordinii standard de temă Office utilizate de partea XLSX
Tint — ajustare mai deschis/mai închis conform specificațiilor în intervalul -1,0 .. +1,0 0,0 utilizează culoarea de bază a slotului de temă; valorile negative întunecă (luminanța HSL spre 0), valorile pozitive deschid (luminanța HSL spre 1). HotXLS codifică aceasta ca întreg semnat Q15 în câmpul FullColorExt.nTintShade al înregistrării XFExt

Observații

Setorul parcurge două căi astfel încât aceeași celulă să se redeze corect atât în Excel 2007+, cât și în Excel 2003:
Celulele setate prin SetThemeColor fac dus-întors la încărcare: Interior.Color returnează valoarea RGB rezolvată (temă + nuanță aplicate prin paleta de temă BIFF) astfel apelurile văd întotdeauna o valoare LongWord concretă
Paletele de temă personalizate setate în Excel prin Aspect pagină → Culori supraviețuiesc la încărcare și salvare prin înregistrarea BIFF8 Theme ($0892), astfel orice referință SetThemeColor din partea apelantului se rezolvă prin tema reală a registrului de lucru în loc de schema implicită Office

Exemplu

Umple rândul antet cu accent1 și marchează celulele de avertizare cu un accent roșu deschis cu 50% (accent2 + nuanță 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;

Vedeți și