delphi 中的顏色
拾色器:http://www.rzrgm.cn/del88/p/16862551.html
先看下常見問題

把這個(gè)#FF5733,粘貼在 delphi的 IDE里;


接下來對(duì)比 這2個(gè)值,得出delphi的 轉(zhuǎn)換規(guī)則:
FF5733 ---->> $003357FF
你會(huì)發(fā)現(xiàn)規(guī)律,#FF 57 33 十進(jìn)制 分別對(duì)應(yīng) R G B (255,87,51),而delphi 里變成了 $00BGR,就是說倒過來了,并在前面多加了一個(gè)字節(jié)00;IDE的自動(dòng)轉(zhuǎn)換邏輯:
if value.startWith('#') then
begin
//開始自動(dòng)轉(zhuǎn)換
value = '$00' + B + G + R;//倒過來
end;
以全紅色舉例:

HTML里是 #FF00000; #RGB模式;
Delphi里是 $000000FF; $00BGR模式;
{
1.Delphi 中的標(biāo)準(zhǔn)寫法:
其中低3位字節(jié)代表BGR相應(yīng)的顏色;
如果最高位字節(jié)是$00,則表示用系統(tǒng)調(diào)色板中最相近的顏色;
最高位字節(jié)是$01,則表示用當(dāng)前調(diào)色板中最相近的顏色匹配;
最高位字節(jié)是$02,則用當(dāng)前設(shè)備描述表中邏輯調(diào)色板的次相近顏色匹配。
}
Self.Color := $000000FF;
//2.RGB 分值寫法,譬如:
Self.Color := RGB(255,0,0);
接下來我們看下 Self.Color = TColor,我們看下 這個(gè) TColor 官方的解釋:
Vcl.Graphics.TColor - RAD Studio API 文檔 (embarcadero.com)
VCL 中的顏色 - RAD Studio (embarcadero.com)

最高階字節(jié),是一個(gè)特殊標(biāo)志,猜測(cè)如下:
| 標(biāo)志值 | 代表意思 |
|---|---|
| 00 | 系統(tǒng)層面實(shí)現(xiàn)的調(diào)色板 |
| 01 | 用戶層面實(shí)現(xiàn)的調(diào)色板 |
| 02 | 繼承父級(jí)實(shí)現(xiàn)的調(diào)色板(可能系統(tǒng),也可能用戶) |
本文來自博客園,作者:del88,轉(zhuǎn)載請(qǐng)注明原文鏈接:http://www.rzrgm.cn/del88/p/18232165
浙公網(wǎng)安備 33010602011771號(hào)