תיעוד HotXLS

מתודת SetThemeColor

מגדיר את צבע מילוי הצללה (קדמי) של התא לאחד מ-12 חריצי צבע ערכת הנושא של Office עם כיוונון גוון אופציונלי. מקביל של Interior.Color עבור קוראים שרוצים לפנות לצבעי ערכת הנושא של Office ישירות (כך ש-Excel יכול לגוון מחדש את התא עם פלטת ערכת הנושא של חוברת העבודה) במקום לנעוץ RGB קבוע. זמין מאז v2.61.0 (גל D שלב 4 של מחסנית התרשים)

תחביר

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

פרמטרים

ThemeIdx — חריץ ערכת נושא מבוסס-0: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink תואם לסדר ערכת הנושא הסטנדרטי של Office המשמש בצד XLSX
Tint — כיוונון הבהרה/הכהיה בסגנון-spec בטווח -1.0 .. +1.0 0.0 משתמש בצבע הבסיס של חריץ ערכת הנושא; ערכים שליליים מכהים (בהירות HSL לכיוון 0), ערכים חיוביים מבהירים (בהירות HSL לכיוון 1). הקורא של HotXLS מקודד זאת כמספר שלם חתום Q15 בשדה FullColorExt.nTintShade של רשומת XFExt

הערות

המגדיר הולך בשני נתיבים כדי שאותו תא יעובד כראוי הן ב-Excel 2007+ והן ב-Excel 2003:
תאים שנקבעו דרך SetThemeColor מסיימים סיבוב בעת טעינה: Interior.Color מחזיר את ה-RGB שנפתר (ערכת נושא + גוון מוחלים דרך פלטת ה-BIFF של ערכת הנושא) כך שהקוראים תמיד רואים ערך LongWord קונקרטי
פלטות ערכת נושא מותאמות שנקבעו ב-Excel דרך פריסת דף → צבעים שורדות טעינה ושמירה דרך רשומת BIFF8 Theme ($0892), כך שכל הפניית SetThemeColor מצד הקורא נפתרת דרך ערכת הנושא בפועל של חוברת העבודה ולא דרך ערכת Office המוגדרת כברירת מחדל

דוגמה

ממלא את שורת הכותרת ב-accent1 ומתייג תאי אזהרה עם אדום בהיר ב-50% (accent2 + גוון 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;

ראה גם