CorelDraw VBA Hatchfill цветной - PullRequest
0 голосов
/ 04 марта 2019

У кого-нибудь есть идеи, как получить цвет фона и линии из пользовательской заливки штриховки?

следующий код заполняет выбранную фигуру, используя данные из текстовых полей

      ActiveSelectionRange.ApplyCustomHatchFill ANG.value, LS.value, 0, 0, 0, LT.value, CreateRGBColor(255, 0, 0), BackColor:=CreateRGBColor(255, 255, 255)

это работает нормальноУ меня также есть палитра цветов, который хорошо меняет цвет линии и фона, но если вы измените размер линии, цвет изменится на тот, который указан в коде выше

, что мне нужно получить, так этотекущий цвет линии и задний цвет в выбранной форме, так что я могу изменить толщину линии, сохраняя заданный цвет

У меня есть ощущение, что это как-то связано с GET patternfill.backcolor, но я не могу найти какие-либо примеры наего использование

Любая помощь приветствуется

mark

UPDATE

OK. Я обнаружил, что следующее возвращает цвет в строку

value = s.Fill.Hatch.BackColor.ToString

Затем я могу сделать разбиение и получить значения

Но, похоже, нет опции для gettiЦвет линии (Forecolor)

Есть идеи?

1 Ответ

0 голосов
/ 10 марта 2019

Заполнение штриховки

Заполнение штриховки фигуры - это HatchFill объект.Он имеет один BackColor и один или несколько Patterns().
Каждый шаблон имеет Outline (указывающий строку в шаблоне), который имеет Color, который может быть прочитан, например, ToString или другим методы для считывания цвета.

Если вы хотите изменить другие свойства линий заполнения штриховки, ознакомьтесь со всеми свойствами и методами Outline здесь

Некоторые примеры:

s.Fill.Hatch.BackColor                  ' background color
s.Fill.Hatch.Patterns(1).Outline.Color  ' line color of first pattern
s.Fill.Hatch.Patterns(1).Outline.Width  ' line width of first pattern

Вы также можете проверить, действительно ли он имеет непрозрачный фон: Fill.Hatch.HasBackground

Pattern Fill

На всякий случай: заливка узором проще и имеет только два цвета:

s.Fill.Pattern.FrontColor
s.Fill.Pattern.BackColor
...