如何在C ++ Builder XE5跨平台中获取TAlphaColor的RGB组件?

时间:2014-03-25 12:32:42

标签: c++ c++builder firemonkey

我正在从VCL转换为Firemonkey(FMX)。

我想在TAlphaColor变量中获取R,G或B值。

我曾经使用过函数GetRValue(TColor)。但是,GetRValue是一个Windows GDI调用。

有没有办法实现跨平台工作(特别是Windows和Mac)?

我找到了一些似乎用Delphi和TAlphaColorRecs做的例子,但我无法将代码转换为C ++。

1 个答案:

答案 0 :(得分:0)

您可以使用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;
    };
};