Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
FreeFall
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 9
1

Перевести строку в цвет, интерпретировать форматы RGB -> BGR

04.02.2015, 20:01. Просмотров 1610. Ответов 8
Метки нет (Все метки)

Перевожу строку в цвет и закрашиваю метку, но красное и синее значение цвета поменялись местами.
К примеру ввожу в Edit1 "FF0000" - метка должна принять красный цвет, но получается синий.
Как исправить эту ситуацию?
C++
1
2
3
String Col=Edit1->Text, Cl="0x"+Col;
TColor Br=StringToColor(Cl);
Label5->Color=Br;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2015, 20:01
Ответы с готовыми решениями:

Как можно задать цвет в RGB?
Как задать цвет в билдере, например кодом #f533a4? Или процентним соотношением...

Не совпадает цвет с кодом RGB в StringGrid
вот таким кодом должна рисоваться таблица с красным текстом, а у меня синим...

Как задать цвет в rgb?
Как, собственно, задать цвет? Пытался по разному - безуспешно. Вроде там RGBA,...

Перевести цвет из модели HSV в RGB
Как в Delphi перевести цвет из модели HSB в RGB? Есть перевод RGB->HSB: ...

Как перевести обычный цвет VB в hex, html, rgb?
Народ !! подскажите как перевести обычный цвет VB в хекс , хтмл, ржб !!!

8
gunslinger
случайный прохожий
1289 / 811 / 319
Регистрация: 20.07.2013
Сообщений: 2,285
04.02.2015, 20:50 2
Видимо, тут случай BGR (синий зеленый красный), а не RGB (красный зеленый синий).
То есть используй "0000FF" для красного цвета.
0
FreeFall
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 9
04.02.2015, 20:52  [ТС] 3
Есть какой-нибудь метод? Или придётся менять вручную?
0
ivan.-94
Я Фоюмчанин ? дааааа)
209 / 200 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
04.02.2015, 21:04 4
Так на ум приходит - конвертировать в строку и реверс.

Добавлено через 1 минуту
Хотя у вас изначально строка.
перед TColor Br=StringToColor(Cl); перевернуть Cl
0
FreeFall
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 9
04.02.2015, 21:07  [ТС] 5
Теоретически да, но если будет "55F300", то получится "003F55"
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26101 / 17501 / 6943
Регистрация: 22.10.2011
Сообщений: 30,824
Записей в блоге: 6
04.02.2015, 21:30 6
Если мне память не изменяет - пишется вот такая функция:
C++
1
2
3
4
TColor RgbToBgr(TColor RGB)
{
    return ((RGB & 0x000000FF) << 16) | (RGB & 0x0000FF00) | ((RGB & 0x00FF0000) >> 16);
}
, и вызывается:
C++
1
TColor Br= RgbToBgr(StringToColor(Cl));
2
FreeFall
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 9
04.02.2015, 22:17  [ТС] 7
К сожалению, не работает.
Перевести строку в цвет, интерпретировать форматы RGB -> BGR
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26101 / 17501 / 6943
Регистрация: 22.10.2011
Сообщений: 30,824
Записей в блоге: 6
04.02.2015, 22:20 8
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Функция пишется не внутри другой, а снаружи. Например, так:
C++
1
2
3
4
5
6
7
8
9
10
11
TColor RgbToBgr(TColor RGB)
{
    return ((RGB & 0x000000FF) << 16) | (RGB & 0x0000FF00) | ((RGB & 0x00FF0000) >> 16);
}
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    String Col = Edit1->Text, Cl = "0x" + Col;
    TColor Br = RgbToBgr(StringToColor(Cl));
    Label5->Color = Br;
}
1
FreeFall
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 9
04.02.2015, 22:40  [ТС] 9
Спасибо за помощь (код работает). Сразу функцию не распознал.
0
04.02.2015, 22:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2015, 22:40

Как поменять цвет текста консоли на любой цвет из RGB цветов
Цвет консоли можно поменять используя только 16 встроенных цветов или можно...

Цвет в цветовой схеме RGB – определить “средний цвет”
2. Описать структуры для хранения описания объектов и функции выполняющие...

Как можно интерпретировать строку if (a = !B)
Доброго времени суток, подскажите новичку, как можно интерпретировать строку ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru