1. 程式人生 > >web顏色轉換為delphi

web顏色轉換為delphi

今天在寫寫一個日誌瀏覽和報警功能時,要求用多種顏色去顯示不同的資訊,客戶給出的顏色是web的

rgb顏色,就是用6位16進位制數去表示的顏色,直接把他賦值給Delphi的TColor變數,發現顯示的顏色不對,

差了資料之後才知道

RGB的顏色是從低位向高位儲存,而TCOLOR正好與之相反,

例如

RGB : F1F2FE Tcolor: $00FEF2F1

 

找到問題所在那就好辦了,只需將web顏色的4個位元組高低位對調就ok了啊,於是自己寫了個轉換函式,程式碼很少,但用起來蠻方便的,貼出來與大家分享,

function  WebColorToDelphiTColor(webcolor:Integer):TColor;
var a: array [0..3] of byte; b: array[0..3] of byte; begin integer(a):=webcolor; if a[3]= 0 then begin b[0]:=a[2]; b[1]:=a[1]; b[2]:=a[0] ; b[3]:=0 ; end else begin b[0]:=a[3]; b[1]:=a[2]; b[2]:=a[1] ; b[3]:=a[0] ; end; Result := TColor(b);
end;