Перейти к содержанию
Fire Monkey от А до Я
  • 0

[Windows] Как указать цвет по RGB TColor?


Вячеслав

Вопрос

Всем добрый день. В этой теме Ярослав разъяснил, каким образом можно закрасить цветом прямоугольник, имея три составляющих цвета RGB. 

Я столкнулся со следующей проблемой: при работе с TAlphaColor все корректно, но вот при работе с просто TColor составляющие Red и Blue меняются местами. Чтобы не быть голословным, набросал небольшой пример. 

У меня, собственно, 2 вопроса: это я такой слепой и чего-то не вижу, или баг среды?

И второе: почему при работе с TColor цвета получаются такими ущербными? Черный выглядит как серый и тд. Понимаю, всего 255 градаций, но все-равно как-то слишком низкое качество на выходе.

post-359-0-29417800-1425387313.png

Colors.zip

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Добрый день!

TColor и TAlphaColor - несовместимые типы, они по разному хранят цветовые составляющие.

TColor = $00BBGGRR

TAlphaColor = $AARRGGBB

 

И как следствие, если Свойство объявлено как TAlphaColor, то при присвоении ему обычного TColor будет цветовая ошибка.

Ссылка на комментарий
  • 0

Теперь понятно, спасибо! Странно, почему в таком случае компилятор не предупреждает о такой существенной разнице? Или хотя бы осуществлялось автоматическое преобразование типов.

Ссылка на комментарий
  • 0
  • Модераторы

Гляньте справку TAlphaColor и TColor. Расчёт идёт на то, что перед использованием чего-либо, вы читали (как минимум) официальную справку.

Изменено пользователем Brovin Yaroslav
Убрана цитата
Ссылка на комментарий
  • 0

Несомненно, это хороший совет, и нормальные программисты так и должны делать. Но, во-первых, справке Embarcadero далеко до идеала.

 

А во-вторых, такой расчет чрезмерно оптимистичен. Пусть лучше мой компилятор будет параноиком и выдавать мне сотню предупреждений, чем рассчитывать, что я досконально изучил тему. Хуже от этого точно никому не будет.

Изменено пользователем Brovin Yaroslav
Убрана цитата
Ссылка на комментарий
  • 0

В связи со всем вышесказанным, я бы попросил администраторов слегка поправить эту тему. В ней ТС явно просил указать цвет Rectangle. Ярослав привел пример с TColor, который будет работать некорректно. А название этой темы поменять, т.к. это не баг, а мое банальное незнание.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...