C ++ Builder — Как я могу получить компоненты RGB TAlphaColor в C ++ Builder XE5 кросс-платформенном?

Я конвертирую из VCL в Firemonkey (FMX).

Я хочу получить значения R, G или B в переменной TAlphaColor.

Раньше я использовал функцию GetRValue (TColor). Однако GetRValue — это вызов Windows GDI.

Есть ли способ сделать это, который будет работать кросс-платформенный (в частности, Windows и Mac)?

Я нашел примеры, которые, кажется, делают это с Delphi и TAlphaColorRecs, но я не могу преобразовать код в C ++.

3

Решение

Вы можете использовать TAlphaColorRec структура для считывания цветовых каналов:

TAlphaColorRec acr;
acr.Color = Color;
Byte r = acr.R;
Byte g = acr.G;
// etc.

Важной частью этого типа является union который объявлен так:

union
{
struct
{
System::Byte B;
System::Byte G;
System::Byte R;
System::Byte A;
};
struct
{
System::Word HiWord;
System::Word LoWord;
};
struct
{
TAlphaColor Color;
};
};
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]