Delphi中的TColor类型是16进制数值,但与其他标准的颜色值不同,原因就是RGB的值的位置被调换了。我写了一个简单的转换函数:
function MyRGB(Color: TColor): TColor;
var
r, g, b: integer;
begin
r := Color and $000000FF;
g := (Color and $0000FF00) shr 8;
b := (Color and $00FF0000) shr 16;
result := (b or (g shl 8) or (r shl 16));
end;