我需要将颜色传递给接受基数的 GetRValue。但是,TColor 是整数,有时会出现范围检查错误。如果它是负数,我应该将颜色修剪为 0 吗?
最佳答案
负值表示您将特殊颜色值(如 clWindow
)传递给 GetRValue
。这是一个错误。您需要先调用 ColorToRGB
才能转换为真正的 RGB 值。存储在 32 位整数中的真正 RGB 值永远不会为负。
R := GetRValue(ColorToRGB(Color));
另一种解释是您将 ARGB 值放入
TColor
。这也是一个错误,因为 TColor
没有 alpha channel 。关于delphi - Windows.GetRValue 接受基数,但 TColor 是整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9809687/