الأسلوب NearestIndexedColor
يجد أقرب مدخل بين خانات لوحة الألوان الفعلية من 8 إلى 63 ويعيد قيمة ColorIndex العامة والخانة الفعلية معًا
يتوفر هذا الأسلوب في IXLSWorkbook وTXLSXWorkbook معًا، ولا يعدّل حالة لوحة الألوان أو المصنف
البنية
function NearestIndexedColor( AArgb: LongWord; out AMatch: TXLSNearestIndexedColorMatch): Boolean;
الإدخال
يقبل AArgb قيمة $00RRGGBB بعمق 24 بت أو قيمة $FFRRGGBB معتمة
يُطبَّع بايت ألفا الصفري إلى $FF؛ وتُرفض القيم شبه الشفافة لأن مدخلات لوحة ألوان المصنف المفهرسة معتمة
النتيجة
| الحقل | المعنى |
|---|---|
InputARGB | لون الإدخال المعتم المطبَّع |
ColorIndex | فهرس اللوحة العام من 1 إلى 56 |
PaletteSlot | خانة اللوحة الفعلية بتنسيق BIFF أو OOXML من 8 إلى 63 |
ARGB | اللون المعتم المطبَّع المخزَّن في خانة اللوحة المختارة |
DistanceSquared | المسافة الإقليدية المربعة في فضاء الألوان OKLab |
ExactMatch | صحيح عندما تكون قنوات RGB للمدخل المختار مطابقة لقنوات الإدخال المطبَّع |
تعيد الدالة القيمة false عند إدخال شبه شفاف أو عندما تكون ذاكرة مطابقة اللوحة غير متاحة؛ ويهيئ الفشل ColorIndex إلى الصفر وPaletteSlot إلى -1
عقد المطابقة
يخزّن كل مصنف مؤقتًا قيم ARGB المطبَّعة وإحداثيات OKLab لمدخلات لوحته الفعلية الـ 56
يعيد تصفير اللوحة بناء الذاكرة المؤقتة كاملةً، والتغيير الفعلي في خانة واحدة يحدّث تلك الخانة المخزنة فقط
يحوّل كل استعلام الإدخال مرة واحدة ويجري مسحًا واحدًا ثابتًا للمدخلات الـ 56 دون سجل استعلامات أو نمو غير محدود للذاكرة المؤقتة
تختار المسافات المتساوية أدنى فهرس عام، بما في ذلك ألوان اللوحة المكررة، فتبقى النتائج حتمية عبر المحركات والتشغيلات
لا تعد الرموز التلقائية والنظامية ورموز الألوان غير الصالحة مرشحة؛ استخدم ResolveIndexedColor لتصنيف تلك القيم
مثال
if Workbook.NearestIndexedColor($FF13579B, Match) then
begin
PaletteIndex := Match.ColorIndex;
if Match.ExactMatch then
UseExactPaletteColor(Match.ARGB);
end;