الوحدة: lxHandle
تُطبِّق أحد فتحات ألوان سمة Office الـ 12 (بالإضافة إلى درجة اللون الاختيارية) على
TXLSColorFormat جانب الرسم — المقبض ذاته الذي تعرضه
FillFormat.ForeColor و
LineFormat.ForeColor يُغلق، يُصدِر الـ writer علاقات ورقة العمل والتعليقات وVML وDrawingML والوسائط وChartML بالتتابع، ثم يحرّر حالة القناة الجانبية قبل بدء ورقة العمل التالية
XlsGetDrawingThemeColor داخل العملية نفسها يمكنه استعادة idx + tint الأصليين للسمة
استخدم هذه الأداة المساعدة عندما تريد التطبيقات تعبئات المخططات وألوان خطوطها وتعبئات الأشكال أن تتتبع لوحة ألوان سمة المصنف بنفس الطريقة التي تفعلها الخلايا من خلال
Interior.SetThemeColorالبنية
procedure XlsApplyThemeColorToDrawing(
ColorFormat: TXLSColorFormat;
Workbook : TXLSWorkbook;
ThemeIdx : Word;
Tint : Double);
المعاملات
Workbook — مضيف TXLSWorkbook. ضروري لتحليل لوحة ألوان السمة والاحتفاظ بالجدول الجانبي في الذاكرة
ThemeIdx — فتحة السمة (قائمة على 0):0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..6, 10=hlink, 11=foHlink)
Tint — تعديل التفتيح/التغميق بأسلوب المواصفة في النطاق -1.0 .. +1.0
ملاحظات
تُنفِّذ الأداة المساعدة عمليتَي كتابة في كل استدعاء:
- كتلة OfficeArt opt على القرص. يحل لون النسق مع tint عبر لوحة نسق BIFF الخاصة بالمصنف إلى RGB فعلي ويُكتب في خانة لون الرسم. OfficeArt في BIFF8 هو صيغة ثنائية سابقة لـOffice-2007 بلا ترميز أصلي لألوان النسق، لذا فهذا هو الجزء الوحيد الذي ينجو من Save / Open
- جدول جانبي داخل الذاكرة على المصنف (v2.64.0+). يسجّل المعين أيضًا الزوج الأصلي
(ThemeIdx, Tint) في TXLSWorkbook.FDrawingThemeColors المفتاح بـ (ColorFormat._Container, ColorFormat._Pid). يقرأ القارئ المرافق XlsGetDrawingThemeColor تلك القيم ضمن العملية نفسها. يؤدي إعادة تعيين الخانة نفسها إلى استبدال الإدخال، لذا يتتبع الجدول الجانبي أحدث نية بدلًا من تراكم السجل
لماذا يقتصر على عملية واحدة فقط. يُشفِّر BIFF8 OfficeArt ColorRef ذا 4 بايتات متغيرات مفهرسة / RGB / مخطط / sysColor، لكن لا يوجد سجل امتداد مماثل لـ XFExt $087D حيث يمكن أن تستمر فتحة السمة + درجة اللون. لذا يعود هذا القيد إلى بنية تنسيق الملف وليس فجوة في HotXLS TXLSWorkbook instance with an empty side-table and XlsGetDrawingThemeColor returns False, falling through to ColorFormat.RGB
مثال
يُعيد تلوين تعبئة شكل صلبة إلى accent5 بدرجة تغميق 25%، ثم يقرأ نية السمة من جدول المصنف الجانبي لعرضها على لوحة الخصائص. بعد SaveAs / Open يبدأ الجدول الجانبي فارغاً مجدداً، لذا يجب على المستدعين الذين يحتاجون إلى النية المستمرة الاحتفاظ بحالتهم الخاصة
var
Shape : TXLSShape;
ThemeIdx : Word;
Tint : Double;
begin
Shape := Workbook.Worksheets[1].Shapes.Items[0];
XlsApplyThemeColorToDrawing(Shape.Fill.ForeColor, Workbook, 8, - 0.25);
// Same process — the side-table still has the entry.
if XlsGetDrawingThemeColor(Shape.Fill.ForeColor, Workbook, ThemeIdx, Tint)
then
ShowMessage(Format('theme=%d tint=%.2f', [ThemeIdx, Tint]));
Workbook.SaveAs('ThemedShape.xls', xlExcel97);
end;
انظر أيضاً