【发布时间】:2024-01-06 11:01:01
【问题描述】:
使用 Delphi 10.2 和主题:是否有可靠的方法来确定当前主题是“浅色”(白色或浅色 clWindow 颜色)还是“深色”(黑色、接近黑色或深色 clWindow 颜色)主题?我必须用特定颜色绘制某些元素(例如,无论主题颜色如何,警报指示器都是红色的),但需要在深色背景下使用“亮”红色而不是在浅色背景下使用更“柔和”的红色。
我已经尝试查看主题 clWindow 颜色的各种 RGB 组件集(即,如果 3 个组件颜色中的 2 个 > $7F,它是一个“浅色”主题),但这对于某些主题并不总是可靠的。
是否有更好/更可靠的方法来确定这一点?
【问题讨论】:
-
你说的是IDE插件吗?
-
您需要考虑背景中每个颜色分量的亮度。公式可以在in here 找到。然后就可以用$7F的简单比较了。
-
Uwe - 不。不幸的是,主题名称不能满足我的需求。我认为汤姆的答案是正确的。
-
Tom - 这似乎是正确的,至少对于我测试过的主题而言。谢谢!