Метод 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 істинне |
HasResolvedColor | Істинне лише тоді, коли пошук за палітрою, фіксований колір формату чи явний зворотний виклик дали значення RGB |
Повернене функцією значення збігається з HasResolvedColor; класифікація залишається доступною у AResolution, коли функція повертає false
Контракт системних кольорів
Коротке перевантаження ніколи не читає поточну стільницю Windows і тому залишає автоматичні та залежні від середовища системні кольори нерозв'язаними
Довге перевантаження передає і TXLSSystemColorRole, і TXLSIndexedColorRole до ASystemResolver, дозволяючи викличному коду застосувати явну політику користувацького інтерфейсу, експорту чи візуалізації без інтерфейсу
Вихідні дані зворотного виклику мають використовувати порядок каналів $AARRGGBB; нульовий байт альфи нормалізується до $FF, а результат зворотного виклику false залишає семантичний токен класифікованим, але нерозв'язаним
Windows COLORREF використовує порядок каналів $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);