متد ResolveIndexedColor
توکن رنگ مفهرس را طبقهبندی میکند و وقتی پالت کتاب کار یا حلکننده رنگ سیستمیِ ارائهشده توسط فراخوان مقداری فراهم کند، یک مقدار ARGB مشخص به دست میدهد
این متد هم روی IXLSWorkbook و هم روی TXLSXWorkbook در دسترس است و وضعیت کتاب کار را تغییر نمیدهد
نحو
function ResolveIndexedColor( AIndex: Int64; ASpace: TXLSIndexedColorSpace; out AResolution: TXLSIndexedColorResolution): Boolean; overload; function ResolveIndexedColor( AIndex: Int64; ASpace: TXLSIndexedColorSpace; ARole: TXLSIndexedColorRole; ASystemResolver: TXLSTryResolveSystemColor; out AResolution: TXLSIndexedColorResolution): Boolean; overload;
فضاهای اندیس
| فضا | تفسیر |
|---|---|
xicsPublicColorIndex | اندیسهای عمومی پالت از 1 تا 56 به خانههای پالت BIFF از 8 تا 63 نگاشت میشوند؛ xlColorIndexAutomatic علامتدار یا بدون علامت، خودکار طبقهبندی میشود |
xicsBiffIcv | اندیسهای BIFF نسبت به نقش منتخب اعتبارسنجی میشوند: رنگهای قلم و یادداشت از زیرمجموعه IcvFont، رنگهای کادر و پرکننده از زیرمجموعه IcvXF، رنگهای نمودار از زیرمجموعه IcvChart و جستوجوی عمومی از جدول کامل Icv استفاده میکنند |
xicsOoxmlIndexed | اندیسهای OOXML از 0 تا 63 پالت مفهرس را نشانه میگیرند، مقادیر 64 و 65 پیشزمینه و پسزمینه سیستمی را شناسایی میکنند و مقادیر بزرگتر نامعتبرند |
نتیجه
| فیلد | معنی |
|---|---|
Kind | xickPalette، xickAutomatic، xickSystem یا xickInvalid |
RawIndex | مقدار ورودی بدون تغییر |
PaletteSlot | خانه فیزیکی پالت مبتنی بر صفر، یا 1- وقتی توکن مبتنی بر پالت نباشد |
SystemColorRole | نقش سیستمی معنایی، شامل متن پنجره، پسزمینه پنجره، متن نمودار، پسزمینه نمودار، رنگ خنثی نمودار و متن راهنمای شناور |
ARGB | رنگ مشخص نرمالشده وقتی HasResolvedColor برابر true باشد |
HasResolvedColor | فقط وقتی true است که جستوجوی پالت، رنگ قالب ثابت یا فراخوان صریح، مقدار RGB تولید کرده باشد |
مقدار بازگشتی تابع با HasResolvedColor مطابقت دارد؛ طبقهبندی حتی وقتی تابع false برمیگرداند در AResolution در دسترس میماند
قرارداد رنگ سیستمی
سربارگذاری کوتاه هرگز میزکاری فعلی Windows را نمیخواند و از این رو رنگهای خودکار و سیستمیِ وابسته به محیط را حلنشده میگذارد
سربارگذاری بلند، هم TXLSSystemColorRole و هم TXLSIndexedColorRole را به ASystemResolver میفرستد تا فراخوان بتواند خطمشی صریحی برای رابط کاربری، خروجیگیری یا رندر بدون سر (headless) اعمال کند
خروجی فراخوان باید ترتیب کانال $AARRGGBB را رعایت کند؛ بایت آلفای صفر به $FF نرمال میشود و نتیجه false فراخوان، توکن معنایی را طبقهبندیشده اما حلنشده باقی میگذارد
مقدار COLORREF در Windows از ترتیب کانال $00BBGGRR استفاده میکند و باید پیش از بازگرداندن توسط فراخوان به $AARRGGBB تبدیل شود
توکنهای نامعتبر هرگز فراخوان را صدا نمیزنند و توکن خنثی نمودارِ ثابت BIFF بدون فراخوان به سیاه مات حل میشود
مثال
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);