#vba #colors #fill #coreldraw
#vba #Цвет #заливка #coreldraw
Вопрос:
У кого-нибудь есть идея, как получить цвет фона и линий из пользовательской заливки штриховки?
следующий код заполняет выбранную фигуру, используя данные из текстовых полей
ActiveSelectionRange.ApplyCustomHatchFill ANG.value, LS.value, 0, 0, 0, LT.value, CreateRGBColor(255, 0, 0), BackColor:=CreateRGBColor(255, 255, 255)
это работает нормально, у меня также есть средство выбора цвета, которое изменяет цвет линии и фона, и это нормально, но если вы измените размер линии, цвет вернется к тому, который указан в приведенном выше коде
что мне нужно получить, так это текущий цвет линии и backcolor в выбранной фигуре, чтобы я мог изменить толщину линии, сохранив установленный цвет
у меня такое чувство, что это как-то связано с GET patternfill.backcolor, но я не могу найти никаких примеров его использования
Любая помощь приветствуется
отметить
Обновить
Хорошо, я обнаружил, что следующее возвращает обратный цвет в строку
значение = s.Заливка.Штриховка.Обратный цвет.toString
Затем я могу выполнить разделение и получить значения
Но, похоже, нет возможности получить цвет линии (Forecolor)
Есть идеи?
Ответ №1:
Штриховка заливкой
Штриховка фигуры — это объект штриховки. У него есть один 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
Заливка шаблоном
На всякий случай: заливка шаблоном проще и имеет только два цвета:
s.Fill.Pattern.FrontColor
s.Fill.Pattern.BackColor
Комментарии:
1. Привет, Asger Hatch.patterns работает, но выдает мне шаблоны фонового цвета. цвет передней панели выдает ошибку с сообщением о неправильном типе заливки, мне нужен цвет передней панели hatchfill, не могу поверить, что это ооочень сложно
2. Сколько
Fill.Hatch.Patterns.Count
у вашей фигуры? Пожалуйста, проверьте, какиеOutline.Color
цвета есть у всех этих элементов. Пожалуйста, также проверьтеPatterns(0)
.3. Привет, Асгар, количество равно 1, если я проверяю шаблоны (0), выдается ошибка, указывающая, что должно быть от 1 до 1
4. У вас «есть средство выбора цвета, которое изменяет цвет линии», но как или что это меняет? Возможно, проблема в этом. Если вы не измените
Hatch.Patterns(1).Outline.Color
с помощью этого средства выбора цвета, он останется предопределенным.5. Вы также изменяете «размер линии». Если вы имели в виду ширину линии, я также добавил пример.