Вы эти линии в режиме исполнения хотите рисовать? или только в RT цвет менять?
Вы эти линии в режиме исполнения хотите рисовать? или только в RT цвет менять?
непонятно в чем вопрос, чем это будет отличаться от примера из справки. СОздаете окно, там рисуете из набора линий фигуру как вам нужно. МОжет быть имеет смысл взять одну линию, а не отдельные и нарисовать произвольную геометрию, добавить в клемник параметр, задинамизировать по нему цвет или одной линии, или всех линий. И вставить это окно как контрол. Параметр из клемника будет как параметр этого окна, которые вы связываете с элементом.
Вот именно что не фигуру в окне из кучи линий нарисовать, а каждая линия это отдельный элемент. Мне нужно 300 таких линий, в разных окнах, которые имеют свой размер и угол поворота в пространстве, и у каждой линии свой параметр, который отвечает за динамизацию цвета конкретной линии.
Если каждую линию нужно прорисовывать отдельно (они все у вас уникальны)- вы их и рисуете отдельно через контрол Линия и у каждой динамизируете цвет и задаете другие настройки длины и координаты каждой линии.
Если линии чем-то похожи и большинство настроек у них общие, то можно сделать типовую линию, в библиотеке на клеммник добавить два параметра например, цвет и угол поворота. Связать их со свойствами линии. Получится типовое окно. ПОтом это окно вставляете в другое окно, как обычный элемент и задаете настройки угла поворота и динамизируете цвет уже не через свойства линии, а через параметры окна, которые будут видны ка свойства. Скоро выйдет лайфхак на 'ютьюб канале MasterSCADA. Может будет понятнее, что я имею в виду.
Общее у этих линий это формула динамизации цвета. Задавать вручную каждой линии угол поворота - весьма неудобная история (там не будет ровных значений 45, 90 и т.д.). Значит придётся каждую линию рисовать вручную и забивать динамизацию вручную.
В любом случае спасибо за информацию.
Добрый вечер.
Для управления RGB диммером в интерфейсе добавил элемент UI "Выбор цвета". На выход он отдаёт значение вида #FFCCAA00, в представлении RGBA, по байту на каждый цвет. А диммер, подключаемый по modbus, принимает значения вида 0-255 на каждый из каналов R, G, B.
Разбираю и собираю RGBA строку с помощью BYTE_OF_DWORD() и DWORD_OF_BYTE(), с последующим преобразованием, эта часть вроде работает.
А как явно перевести представление переменной из DEC в HEX и обратно? То есть, чтобы получив на входе CC она отдала 204, и наоборот?
Если получили byte цвета 0xCC то еще проще, (int)byteR, (int)byteG, (int)byteB и обратно ваше число, которое не превышает 0-255 потом в байт (byte)collorR и т.д.