تعين لون تعبئة تظليل الخلية (المقدمة) إلى إحدى فتحات ألوان سمة 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 — تعديل تفتيح/تغميق بنمط المواصفات في النطاق -1.0 .. +1.0
يستخدم 0.0 اللون الأساسي لفتحة السمة؛ القيم السالبة تغمق (إضاءة HSL نحو 0)،
القيم الموجبة تفتح (إضاءة HSL نحو 1). يقوم قارئ HotXLS بتشفير هذا كعدد صحيح
بإشارة Q15 في حقل FullColorExt.nTintShade من سجل XFExt
ملاحظات
يسلك المعين مسارين بحيث يتم عرض الخلية نفسها بشكل صحيح في كل من Excel 2007+ و Excel 2003:
- icv المفهرس في سجل XF (قديم) — يتم حل السمة + التظليل عبر لوحة سمات BIFF للمصنف إلى RGB، والذي يختار بعد ذلك أقرب فهرس لوحة من 56 لونًا. يرى Excel 97-2003 هذا التقريب عند فتح الملف
- فتحة FullColorExt على XFExt $087D (Excel 2007+) — يصدر الكاتب سجلاً جانبيًا غنيًا بالألوان مع
xclrType=3 (theme) و xclrValue=ThemeIdx و nTintShade المستمد من Tint. يستخدم Excel 2007+ هذا لاستعادة نية السمة الدقيقة وإعادة تلوين الخلية كلما تغيرت لوحة سمات المصنف — وهي نفس حيلة التوافق مع الإصدارات السابقة التي تستخدمها Microsoft عندما يؤدي "حفظ باسم" إلى خفض تصنيف .xlsx المصمم بسمة إلى .xls
تعود الخلايا المعينة عبر رحلة
SetThemeColor عند التحميل: تُرجع
Interior.Color قيمة RGB المحلولة (تم تطبيق السمة + التظليل من خلال لوحة سمات BIFF) بحيث يرى المستدعون دائمًا قيمة LongWord محددة
تنجو لوحات السمات المخصصة المعينة في Excel عبر تخطيط الصفحة → الألوان من التحميل والحفظ من خلال سجل سمة BIFF8 ($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، الظل الأساسي
Warnings := Workbook.Sheets[1].Range['G2', 'G20'];
Warnings.Interior.SetThemeColor(5, 0.5); // accent2، أفتح بنسبة 50%
Workbook.SaveAs('ThemeFills.xls', xlExcel97);
end;
انظر أيضًا