مستندات HotXLS

متد SetThemeColor (Interior)

رنگ پر (پیش‌زمینه) سایه‌زنی سلول را به یکی از ۱۲ اسلات رنگ تم Office با تنظیم tint اختیاری تعیین می‌کند. همراه Interior.Color برای فراخوان‌دهندگانی که می‌خواهند رنگ‌های تم Office را مستقیماً مخاطب قرار دهند (تا Excel بتواند سلول را با پالت تم کارپوشه مجدداً رنگ‌آمیزی کند) به‌جای تثبیت یک RGB ثابت. از نسخه v2.61.0 موجود است

نحو

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

پارامترها

ThemeIdx — اسلات تم بر مبنای صفر: 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 به سمت ۰)، مقادیر مثبت روشن می‌کنند (روشنایی HSL به سمت ۱). HotXLS این مقدار را به‌عنوان یک عدد صحیح علامت‌دار Q15 در فیلد FullColorExt.nTintShade رکورد XFExt کدگذاری می‌کند

یادداشت‌ها

تنظیم‌کننده دو مسیر را طی می‌کند تا همان سلول هم در Excel 2007+ و هم در Excel 2003 به درستی رندر شود:
سلول‌های تنظیم‌شده از طریق SetThemeColor در بارگذاری دوباره ذخیره می‌شوند: Interior.Color RGB حل‌شده (تم + tint اعمال‌شده از طریق پالت تم BIFF) را برمی‌گرداند، بنابراین فراخوان‌دهندگان همیشه یک مقدار LongWord مشخص می‌بینند
پالت‌های تم سفارشی تنظیم‌شده در Excel از طریق Page Layout → Colors از طریق رکورد BIFF8 Theme ($0892) در بارگذاری و ذخیره باقی می‌مانند، بنابراین هر مرجع SetThemeColor از طرف فراخوان‌دهنده از طریق تم واقعی کارپوشه به‌جای طرح پیش‌فرض Office حل می‌شود

مثال

ردیف سرصفحه را با accent1 پر می‌کند و سلول‌های هشدار را با یک قرمز ۵۰٪ روشن‌شده (accent2 + tint 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;

همچنین ببینید