我需要将颜色传递给接受基数的 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/

10-09 18:30