delphi 中的颜色
先看下常见问题
把这个#FF5733,粘贴在 delphi的 IDE里;
接下来对比 这2个值,得出delphi的 转换规则:
FF5733 ---->> $003357FF
你会发现规律,#FF 57 33 十进制 分别对应 R G B (255,87,51),而delphi 里变成了 $00BGR,就是说倒过来了,并在前面多加了一个字节00;IDE的自动转换逻辑:
if value.startWith('#') then
begin
//开始自动转换
value = '$00' + B + G + R;//倒过来
end;
以全红色举例:
HTML里是 #FF00000; #RGB模式;
Delphi里是 $000000FF; $00BGR模式;
{
1.Delphi 中的标准写法:
其中低3位字节代表BGR相应的颜色;
如果最高位字节是$00,则表示用系统调色板中最相近的颜色;
最高位字节是$01,则表示用当前调色板中最相近的颜色匹配;
最高位字节是$02,则用当前设备描述表中逻辑调色板的次相近颜色匹配。
}
Self.Color := $000000FF;
//2.RGB 分值写法,譬如:
Self.Color := RGB(255,0,0);
接下来我们看下 Self.Color = TColor,我们看下 这个 TColor 官方的解释:
Vcl.Graphics.TColor - RAD Studio API 文档 (embarcadero.com)
VCL 中的颜色 - RAD Studio (embarcadero.com)
最高阶字节,是一个特殊标志,猜测如下:
标志值 | 代表意思 |
---|---|
00 | 系统层面实现的调色板 |
01 | 用户层面实现的调色板 |
02 | 继承父级实现的调色板(可能系统,也可能用户) |
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/18232165