随笔 - 809  文章 - 0 评论 - 144 阅读 - 770万

delphi 中的颜色

拾色器:https://www.cnblogs.com/del88/p/16862551.html

先看下常见问题

image

把这个#FF5733,粘贴在 delphi的 IDE里;

image

image

接下来对比 这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;

以全红色举例:

image

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)

image

最高阶字节,是一个特殊标志,猜测如下:

标志值 代表意思
00 系统层面实现的调色板
01 用户层面实现的调色板
02 继承父级实现的调色板(可能系统,也可能用户)
posted on   del88  阅读(250)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-06-05 yapi的安装
2012-06-05 TEdit设置焦点和判断当前是否是焦点
点击右上角即可分享
微信分享提示