Метод 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 съответстват на слотовете 8..63 на BIFF палитрата; знаков или беззнаков 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);