С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 3 / 0
Регистрация: 23.07.2011
Сообщений: 50

Каким компонентом продемонстрировать выбранный цвет

21.05.2015, 18:56. Показов 2158. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые здравствуйте!

Вопрос детский конечно, но всё же хотябы помогите где рыть и какой это может быть компонент в билдере ...

У меня программа оперирует данными RGB и мне приходится либо в Лейблах либо в Эдитах выводить эти значения, но очень хочется чтобы я там видел не цифры а некое поле которое бы закрашивалось в выводимый цвет, можно ли ?

И самое интерессное, как сделать на примере взятия из x = StrToInt(Edit_R - > Text); только чтобы я брал сразу от туда цвет наподобие Color.R = GetRValue(MyColorBox -> Color); конечно наверняка такого в билдере нет, но что то похожее как сделать ?

Помогите советом пожалуйста.

P.S. При создании темы были похожие варианты на форуме, но всё не то, как взять цвет я впринципе знаю, но меня интересует именно компонент в билдере который может заливаться нужным мне цветом и чтобы я из этого бассейна брал cоставляющие по РГБ и заносил их в свои переменные раздельно методом GetRValue. Имитация некоего подобия самогенерирующейся палитры красок с динамическими контейнерами для цветов.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.05.2015, 18:56
Ответы с готовыми решениями:

Каким компонентом можно реализовать такое?
Каким компонентом можно реализовать такое?

Каким компонентом и как вывести list?
Создал класс: C++Выделить код class Dannie { public: int Et; int EtMy; int KK; int KKMy;

Каким компонентом можно показать время?
Каким компонентом в C# можно показать време например (08:00 до 14:00)

12
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,011
21.05.2015, 21:11
ButtonColor (если есть) или сочетание ColorDialog и Edit (либо что там нравится / больше подходит).
Пример:
C++
1
2
3
4
void __fastcall TForm1::Edit1Click(TObject *Sender)
{
  ColorDialog1->Execute();  // открываем диалог выбора цвета
}
Остальное - дело техники.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33198 / 21494 / 8233
Регистрация: 22.10.2011
Сообщений: 36,888
Записей в блоге: 12
21.05.2015, 21:19
Как это должно выглядеть, уточни. Потому что просто так одним цветом можно любой компонент залить. А для выбора цвета обычно используется TColorDialog
0
3 / 3 / 0
Регистрация: 23.07.2011
Сообщений: 50
21.05.2015, 22:39  [ТС]
Ребята, смотрите ... вы все верно говорите, и как залить цветом что либо я еще это знаю, и как колордиалог вызвать тоже .... не совсем задача такая ...

Попробую еще раз ...

У меня робот адаптационный к цвету, тоесть он сканирует цвет на протяжении например 5 часов, и наблюдает за его изменениями по Сэмплу. Так вот этот сэмпл в начале работы программы я задаю ему методом смотри вот цвет к примеру я ввожу в окошки эдита 25 25 255, далее он смотрит цвет и если за час он зименился на незначительное значение то он сам перезаписывает эти окошки эдита например значениями 40 40 255 и для него этот цвет становится Сэмплом но основной сэмпл он держит в долгой памяти. Так вот я хочу заменить Эдиты на обычный бокс к примеру чтобы в этом боксе отображался сам цвет заливкой, а так же чтобы этот робот мог обратиться сам к этому боксу и взять от туда цвет. тоесть мне не нужно чтоб там было 100 вариантов цвета как в КолорДиалоге, достаточно просто пускай это будет баттон окрашенная в этот цвет Сэмпла, но могу ли я тогда сделать вызов цвета с этой окрашенной кнопки например R = GetRValue(Button1 -> ???) что там да как .... проблема то бестолковая ... понимаете ?

Добавлено через 5 минут
Или к примеру я вот вижу в свойствах Edit поля я могу задать колор бэкграунда, как из кода закрасить Эдит в Р Г Б нужные мне цвета и запросить их, этого то вполне впринципе будет достаточно для начала освоения поставленной задачи.

Добавлено через 4 минуты
Edit_frst_sample_R -> Color = (255,255,100); вот так мне удалось окрасить Эдит ... теперь надо взять этот цвет ))

Добавлено через 17 минут
только чето он криво отображает цвет будто там у него 16 цветов вместо 16 милионов ...

Добавлено через 1 минуту
да и вообще одним красным все рисует походу выражение color = (R,G,B) не верно для заливки ...

Добавлено через 18 минут
Даже если брать чистый колорреф не разбитый на ргб колор в эдите отображается не корректно цифрам отображенным в ргб например я указываю цвет желтый цифрами по ргб пишется верно а окраска идет в какой то бирюзовый

Добавлено через 4 минуты
Судя по наблюдениям окрашивание идет в цвета противоположные указанным, превращает в негатив, сли показать на красный окрашивает в темно синий, если на бирюзовый то в песочнокоричневый и т д .... как окрасить то по нормальному бэкграунд эдита ))))

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
    int RGBColor(int H, int V)  //
   {
        COLORREF xG;
        return xG = MyGetPixel(HWND_DESKTOP, H, V);
   }
 
    GetCursorPos(&cPt);
    Edit_frst_sample_R -> Color = RGBColor(cPt.x, cPt.y); // show current color interactive
    Edit_frst_sample_G -> Color = RGBColor(cPt.x, cPt.y);
    Edit_frst_sample_B -> Color = RGBColor(cPt.x, cPt.y);
Добавлено через 31 секунду
при таком способе цвета отображаются некорректно
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,011
22.05.2015, 00:22
Попробуй вычитать из 255 значение каждого компонента цвета и использовать новые величины.
Или примени функции ColorToRGB / RGBtoBGR в случае необходимости.
0
3 / 3 / 0
Регистрация: 23.07.2011
Сообщений: 50
22.05.2015, 20:25  [ТС]
Ну я же выше писал что по ргб не принимает окраску, и нужно туда передавать цифру без конвертации в ргб - туда влетает что то типа -> color = 4345674; тогда цвета появляются, но не корректно. Я конечно могу вычленить из этой цифры РГБ составляющие, но смысл если их потом нельзя передать в -> color.

Если вы четко ответа не знаете, лучше не играть в догадки, так как догадываться я и сам могу и методом тыка рано или поздно решу эту головоломку.

Добавлено через 20 минут
C++
1
->Color = TColor(RGB(R, G, B));
Вот еще что углядел, возможно это мне поможет ...

Добавлено через 7 минут
И скорее всего мне понадобится некая Panel Preview ))

Добавлено через 3 часа 46 минут
Спасибо господа тема закрыта - как хорошо когда что то узнаешь ...

C++
1
2
Panel_Local -> Color = TColor(RGB(GR, GG, GB)); // show current color interactive
Application->ProcessMessages();
До скорой встречи
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,011
22.05.2015, 20:36
Я тебя совсем не понимаю. То ты используешь GetRValue, то для получения компонентов цвета применяешь одну и ту же функцию RGBColor(cPt.x, cPt.y).
У тебя происходит инверсия (негатив) цветов? Приведи пример в цифрах. А то красный становится темно-синим... И что? Мне, допустим, это мало о чем говорит. "Переведи" значения в TColor, просто покажи их и эквиваленты в RGB или что там у тебя. Больше информации - больше помощи.

P.S.: читай эту тему Преобразование массива 7 чисел в вывод 12 позиций и обрати внимание на пост №3.
P.P.S.: молодец.
0
3 / 3 / 0
Регистрация: 23.07.2011
Сообщений: 50
22.05.2015, 20:56  [ТС]
Господи, как преобразовывать я уже 100 лет назад как знаю, задача стояла покрасить компонент, а метод покраски я не знал ... я писал интуитивно -> Color = RGB(R,G,B); а надо было -> Color = Tcolor(RGB(R,G,B)); вот и вся разница, знающие бы ответили, а догадки строить любой может.

Это же форум не гадалок а знающих ? или я ошибся местом ?
0
22.05.2015, 21:00

Не по теме:

Цитата Сообщение от PaxMaHuHoB Посмотреть сообщение
Это же форум не гадалок
Как сформулирован вопрос, так вам дан ответ

0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
22.05.2015, 21:45
Я как-то пользовался сторонним компонентом ButtonWithColor. Рядом с меткой размещал эту кнопку, по нажатию на которую вызывался диалог ColorDialog , а по выходу из него кнопка окрашивалась в выбранный цвет. Мне так показалось удобней, но можно было поступить аналогично с простым Shape и его обработчиком ShapeMouseDown().
0
3 / 3 / 0
Регистрация: 23.07.2011
Сообщений: 50
22.05.2015, 22:11  [ТС]
Можно как угодно, главное знать как красить, красит только один метод TCOLOR (RGB(RGB)); И хорошо что не вот так ...

C++
1
-> Color = TcolorRGB(TCOLOR(RGB((TColorRGB(R,G,B)) && (RGBTCOLOR(RGB(R,G,B))))));
Я считаю нам еще повезло в этой жизни ...
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,011
22.05.2015, 22:47
Очень много компонентов можно закрашивать цветом. Тебе приводили примеры.
Тут никто не должен залезать тебе в голову, чтобы понять, какой именно из них тебе понравится.
Не знаю, как твои программы (по обработке цвета) по 8 лет работают, но о возможности (и необходимости в случае чего) приводить RGB к TColor знать ты был обязан.
Это все равно что целочисленно делить 1 на 2 и возмущаться, почему 0 получается.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
22.05.2015, 23:59
Цитата Сообщение от PaxMaHuHoB Посмотреть сообщение
красит только один метод TCOLOR (RGB(RGB))
Ну, не только. Можно взять произвольный int A и красить так Object->Color = TColor(A) ;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2015, 23:59
Помогаю со студенческими работами здесь

Каким компонентом отобразить cur/ani файлы?
Возник такой вопрос - как просмотреть файл *.cur - также как и остальные графические файлы в TImage - есть какой нибудь компонент...

Каким компонентом можно сделать вот такую сетку
Каким компонентом можно сделать вот такую сетку в delphi.

Каким компонентом joomla 1.5 можно создать такую таблицу?
Пожалуйста помогите!!

Каким компонентом лучше пользоваться для промотра GIF анимаций?
Для включения GIF анимации я использовал WebBrowser, но при просмотре анимации он смещает анимацию и оставляет большие поля по бокам, как...

Bitrix: Текущий заголовок страницы, измененный каким-либо компонентом
Приветствую! Я впервые работаю с Bitrix (в качестве SEOшника) И не могу разобраться с админкой. Проблема: прописываю страницам сайта...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru