Windows.GetRValue接受红衣主教,但TColor是整数

时间:2012-03-21 17:23:08

标签: delphi

我需要将颜色传递给接受红衣主教的GetRValue。但是,TColor是整数,有时会出现范围检查错误。如果是负面,我应该将我的颜色调整为0吗?

1 个答案:

答案 0 :(得分:13)

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

R := GetRValue(ColorToRGB(Color));

另一个解释是您将ARGB值放入TColor。这也是一个错误,因为TColor不包含alpha通道。