Документация на HotXLS

Метод 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 се класифицира като автоматичен
xicsBiffIcvBIFF индексите се валидират спрямо избраната роля: цветове на шрифт и коментари използват подмножеството IcvFont, цветове на граници и запълвания използват подмножеството IcvXF, цветове на диаграми използват подмножеството IcvChart, а общото търсене използва пълната таблица Icv
xicsOoxmlIndexedOOXML индексите 0..63 адресират индексираната палитра, 64 и 65 идентифицират системен преден и заден план, а по-големите стойности са невалидни

Резултат

ПолеЗначение
KindxickPalette, 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);

Вижте също