• 0
Авторизация  
Вячеслав

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

Вопросы

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

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

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

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

post-359-0-29417800-1425387313.png

Colors.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 ответов на этот вопрос

  • 0

Добрый день!

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

TColor = $00BBGGRR

TAlphaColor = $AARRGGBB

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

Изменено пользователем Brovin Yaroslav
Убрана цитата

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

 

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

Изменено пользователем Brovin Yaroslav
Убрана цитата

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

Авторизация  

  • Похожий контент

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу