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

WeG*_*ars 2 delphi

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

Dav*_*nan 13

负值表示要传递特殊的颜色值一样clWindowGetRValue.那是个错误.您需要先调用ColorToRGB才能转换为真正的RGB值.存储在32位整数中的真实RGB值永远不会为负.

R := GetRValue(ColorToRGB(Color));
Run Code Online (Sandbox Code Playgroud)

另一个解释是你将ARGB值放入TColor.这也是一个错误,因为TColor没有alpha通道.