الأسلوب ScanIndexedColorUsage
يعيد جردًا حتميًا لجميع خانات لوحة ألوان المصنف الفعلية البالغ عددها 56 ولتعريفات الألوان المفهرسة ومراجعها التي تستخدمها
يتوفر هذا الأسلوب في IXLSWorkbook وTXLSXWorkbook معًا، ولا يعدّل لوحة الألوان أو الخلايا أو الأنماط أو التنسيقات الشرطية أو حالة المصنف
البنية
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
النتيجة
يحوي المصفوفة المعادة دائمًا 56 مدخلًا بترتيب تصاعدي للخانات الفعلية من 8 إلى 63
| الحقل | المعنى |
|---|---|
ColorIndex | فهرس اللوحة العام المقابل من 1 إلى 56 |
PaletteSlot | خانة اللون المفهرس الفعلية بتنسيق BIFF أو OOXML من 8 إلى 63 |
ARGB | اللون المعتم المطبَّع المخزَّن حاليًا في الخانة، أو الصفر إذا تعذر حلّه |
DefinitionCount | عدد التعريفات المفهرسة التي تشير إلى الخانة |
ReferenceCount | عدد الكائنات أو الخلايا أو مواضع التنسيق الشرطي المغطاة التي تشير إلى تلك التعريفات |
Kinds | مجموعة تصف كل فئة مستهلك مرصودة |
Locked | صحيح عندما تضم الخانة تعريفًا أو مرجعًا واحدًا على الأقل، وبالتالي يجب أن تحافظ عليها خطة تحسين لوحة الألوان |
تغطية المستهلكين
يمكن أن يضم Kinds الخطوط ومقدمة التعبئة وخلفيتها والتدرجات والحدود والتنسيقات الشرطية والمخططات والأشكال والتعليقات وإعدادات ورقة العمل ومستهلكين مفهرسين آخرين
يشمل مسح Classic XLS الخطوط وتعبئات XF وحدودها وخطوط شبكة ورقة العمل وألوان الأشكال والتعليقات ومراجع خطوط النصوص المنسقة والمخططات والتنسيقات الشرطية القديمة وأشرطة البيانات أو تدرجات الألوان في BIFF12
يشمل مسح XLSX مراجع أنماط الخلايا المجسدة وتراكبات الأنماط والأنماط المسماة ومجموعات الخطوط والتعبئات والتدرجات والحدود والأنماط التفاضلية وأشرطة البيانات وتدرجات الألوان
لا تقفل رموز الألوان المباشرة وألوان المظهر والتلقائية والنظامية وغير الصالحة أي خانة فعلية في لوحة الألوان
عقد الأداء والحالة
يجتاز المسح الخلايا المتناثرة المخزنة وبيانات الأنماط الوصفية القائمة فقط؛ ولا يجسد خلايا معبأة ولا يتكرر عبر إحداثيات ورقة العمل غير المستخدمة
تستخدم الأعداد حسابًا تشبعيًا بعمق 64 بت بحيث لا تلف النطاقات الكبيرة إلى قيمة أصغر
تعيد الاستدعاءات المتكررة على مصنف غير متغير مدخلات متطابقة وتترك أعداد اللوحة المخصصة وإحصاءات التخزين دون تغيير
مثال
Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
if Usage[I].Locked then
PreservePaletteSlot(Usage[I].PaletteSlot);