Delphi Windows.GetRValue接受基数,但TColor为整数

Delphi Windows.GetRValue接受基数,但TColor为整数,delphi,Delphi,我需要向接受基数的GetRValue传递一个颜色。但是,TColor是整数,有时会出现范围检查错误。如果颜色为负值,我是否应该将其修剪为0?负值表示您正在将特殊颜色值(如clWindow传递给GetRValue)。那是个错误。您需要先调用ColorToRGB,才能转换为真正的RGB值。存储在32位整数中的真实RGB值永远不会为负 R := GetRValue(ColorToRGB(Color)); 另一种解释是,您正在将ARGB值放入TColor中。这也是一个错误,因为TColor不包含alp

我需要向接受基数的GetRValue传递一个颜色。但是,TColor是整数,有时会出现范围检查错误。如果颜色为负值,我是否应该将其修剪为0?

负值表示您正在将特殊颜色值(如
clWindow
传递给
GetRValue
)。那是个错误。您需要先调用
ColorToRGB
,才能转换为真正的RGB值。存储在32位整数中的真实RGB值永远不会为负

R := GetRValue(ColorToRGB(Color));
另一种解释是,您正在将ARGB值放入
TColor
中。这也是一个错误,因为
TColor
不包含alpha通道