Задаёт цвет рамки края одному из 12 слотов цветов темы Office с необязательным оттенком. Аналог метода
Border.Color для темы. Доступен для каждого селектора края (верхний, нижний, левый, правый, диагональный, а также составные селекторы xlAround, xlInsideVertical, xlInsideHorizontal, xlInsideAll). Доступен с версии v2.61.0; путь составных селекторов завершён в v2.63.0 (волна D, фаза 6)
Синтаксис
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Параметры
ThemeIdx — индекс слота темы (отсчёт с 0)
(0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..6, 10=hlink, 11=foHlink)
Tint — корректировка осветления/затемнения в стиле спецификации в диапазоне -1.0 .. +1.0
Кодируется в XFExt FullColorExt как знаковое целое Q15 в nTintShade
Примечания
Та же двойная эмиссия записей, что и для установщиков Interior / Font:
- Запись XF получает индексированный icv с лучшим совпадением на соответствующем граничном слоте для совместимости с Excel 97-2003
- Запись XFExt $087D получает слот FullColorExt для соответствующего типа границы extType ($0007 верх, $0008 низ, $0009 слева, $000A справа, $000B диагональ) с
xclrType=3 и xclrValue=ThemeIdx
Составные селекторы регистрируют по одному слоту XFExt на физический край в одном проходе цикла по ячейкам с помощью внутреннего вспомогательного метода установки слота.
xlAround регистрирует
{rsTop, rsBottom, rsLeft, rsRight};
xlInsideVertical регистрирует
{rsLeft, rsRight};
xlInsideHorizontal регистрирует
{rsTop, rsBottom};
xlInsideAll регистрирует все четыре. Обратное чтение через
Border.Color возвращает разрешённый RGB
BIFF8 FullColorExt хранит только один цвет диагонали, поэтому xlDiagonalDown и xlDiagonalUp используют один и тот же слот XFExt (rsDiag)
Пример
Обрамляет полосу отчёта цветом accent4 (цвет темы) и добавляет внутренний разделитель accent5 с 25% более светлым оттенком
var
Report: IXLSRange;
begin
Report := Workbook.Sheets[1].Range['A1', 'F20'];
Report.Borders[xlAround].SetThemeColor(7, 0.0);
Report.Borders[xlInsideHorizontal].SetThemeColor(8, 0.25);
Workbook.SaveAs('ThemedBorders.xls', xlExcel97);
end;
См. также