Как перевести цвет, полученный в Colordialog в RGB значения?
Long число которое возвращет функция уже несет в себе цвет, но вот
потребовались байты конкретно R = ? G = ? B = ?. Пока нигде не нашел ответа!
Может кто знает?
ColorDialog
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
По-видимому
R = band(bshift(color,-16), 0ffh)
G = band(bshift(color,-8), 0ffh)
B = band(color, 0ffh)
--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
(Добавление)
Hi,
Applications can extract the individual values of the red, green, and blue components from a color value by using the GetRValue, GetGValue, and GetBValue macros, respectively. Applications can create a color value from individual component values by using the RGB macro.
(с) MSDN
WBR, Nick Tsigouro. MailTo:Nick@arsis.ru
Это мне напоминает анекдот про эволюцию программиста
--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
(Добавление)
Что-то мне говорит, что должно получиться так:
С уважением,
В.Смелик.
(Добавление)
Наложить на поле Long структуру из 4 байтов
И иметь в виду, что -1 это Color:None (наступал на эти грабли
)
Кстати, в Cw6 есть проблемы с Color-полями в #Prompt. Пытаюсь выбрать Color:White, а получаю ...
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#75924439
Написал: ClaList(2)
R = band(bshift(color,-16), 0ffh)
G = band(bshift(color,-8), 0ffh)
B = band(color, 0ffh)
--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
(Добавление)
Hi,
Applications can extract the individual values of the red, green, and blue components from a color value by using the GetRValue, GetGValue, and GetBValue macros, respectively. Applications can create a color value from individual component values by using the RGB macro.
Код: Выделить всё
BYTE GetRValue(
DWORD rgb // 32-bit RGB value
);
#define GetRValue(rgb) ((BYTE) (rgb))
BYTE GetGValue(
DWORD rgb // 32-bit RGB value
);
#define GetGValue(rgb) ((BYTE) (((WORD) (rgb)) >> 8))
BYTE GetBValue(
WORD rgb // 32-bit RGB value
);
#define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
COLORREF RGB(
BYTE bRed, // red component of color
BYTE bGreen, // green component of color
BYTE bBlue // blue component of color
);
#define RGB(r, g ,b) ((DWORD) (((BYTE) (r) ! \
((WORD) (g) << 8)) ! \
(((DWORD) (BYTE) (b)) << 16)))
WBR, Nick Tsigouro. MailTo:Nick@arsis.ru
Это мне напоминает анекдот про эволюцию программиста

--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836
(Добавление)
Что-то мне говорит, что должно получиться так:
Код: Выделить всё
ColorVar LONG
ColorGroup GROUP,PRE(CLG),OVER(ColorVar)
C BYTE
B BYTE
G BYTE
R BYTE
END
В.Смелик.
(Добавление)
Наложить на поле Long структуру из 4 байтов
Код: Выделить всё
Color Long
ColorG Group,Over(Color)
_skip Byte
R Byte
G Byte
B Byte
End

Кстати, в Cw6 есть проблемы с Color-полями в #Prompt. Пытаюсь выбрать Color:White, а получаю ...
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#75924439
Написал: ClaList(2)