[CDR X5-X8] Правильно прописать условие для If

  • Автор темы Автор темы Erchizo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Erchizo

Участник
Топикстартер
Сообщения
58
Реакции
1
Добрый день.
Нужна ваша помощь.
Задача: найти весь текст и перевести в кривые, если он не красного цвета.
Вот как я это реализовал:
...
If item.Type = cdrTextShape Then
If item.Fill.UniformColor.CMYKMagenta < 100 Then
item.ConvertToCurves
End If
End If
...
Проблема: Время от времени макрос ругается на цветовую модель!
Просьба: Подсказать правильное условие отбора, для данной задачи.
заранее спасибо!
 
If item.Fill.UniformColor.CMYKMagenta < 100
Не совсем понимаю, что именно вы этим условием проверить хотите?
В данный момент оно означает "если Magenta составляющая цвета светлее 100"
Но это совершенно не означает красный цвет
Если хотите Magenty проверять, то сперва хотя бы проверьте UniformColor.isCMYK а то, Кэп подсказывает, что в случае RGB данная проверка бессмысленна
А вообще, если хотите проверить на строгое соответствие определенному цвету из палитры, то проще всего проверять на UniformColor.Name(False)
 
  • Спасибо
Реакции: Erchizo
Я прописал через мадженту т.к. в CMYK, в красном цвете она составляет 100 %.
Так я думал будет нормально ((((((. Индюк тоже думал ..
Следуя вашему совету - UniformColor.Red = False(True).
Я правильно понял ?
 
UniformColor.Red = False(True).
Ненене, это вообще какая то фигня
False - ложь, True - наоборот, истина
Вам же нужно посмотреть имя вашего красного цвета и сравнивать Name(False) с ним
 
Можно в принципе даже и без (False):
Код:
if item.Fill.UniformColor.Name = "Red"
...
 
  • Спасибо
Реакции: Erchizo
Статус
Закрыто для дальнейших ответов.