Tuğrul beyin söylediklerine ek ve düzeltme olarak;
Renk örneği (F9FAFA) bir birine yakın sayılardan oluştuğu için anlaması zor olabilir ve ayrıca herhangi bir nesne üzerinde görünen renkten de farkı anlamak zor olacaktır. #F9FAFA koduyla verilen renk ile sıralaması değiştirilmeden HEX'miş gibi yazılan $F9FAFA rengi neredeyse aynı görünümdedir. Ama bu örnek bizi yanıltmaktadır.
Renk kodu "#RRGGBB" nın Delphi'deki karşılığı $RRGGBB olamaz. Aşağıdaki kod RRGGBB tipindeki renk kodunu RGB fonksiyonu ile Integer sayıya çevirmektedir. Son olarak sonucu HEX olarak göstermek için dönüştürme yapmaktadır. Eğer kodu denerseniz, sonucun Tuğrul beyin de sonradan ilave yaptığı gibi BGR olarak değiştiğini göreceksiniz. Yani F9FAFA'nın HEX karşılığı $FAFAF9 olacaktır.
Örneği değiştirirsek; renk kodu F9FA01 olsaydı, Hex karşılığı $01FAF9 olacaktı.
Kod: Tümünü seç
var Renk: string;
Col: TColor;
R, G, B: Byte;
begin
Renk := '#F9FA01'; //Renk := '#F9FAFA';
R := StrtoInt('$' + Copy(Renk, 2, 2)); //hex -> integer
G := StrtoInt('$' + Copy(Renk, 4, 2));
B := StrtoInt('$' + Copy(Renk, 6, 2));
Col := RGB(R, G, B);
Edit1.Text := Inttohex(Col, 6);
end;