уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Формат кодов цвета в HTML

Цветовой код в HTML состоит из символа «#» (решетка) и шести букв или цифр. При этом используется шестнадцатеричная система счисления. Например, «FF» в шестнадцатеричной системе соответствует 255 в десятеричной, «7B» — 123 и так далее. Расшифровывается код следующим образом:

  • Первые два символа (после символа решетки) — насыщенность красного цвета (00 — наименее насыщенный и FF — наиболее насыщенный)
  • Третий и четвертый символы означают насыщенность зеленого
  • Пятый и шестой — синего.

Таким образом, для того, чтобы перевести код цвета из HTML в TColor достаточно выполнить следующие — проверить наличие символа # во входной строке и, при необходимости — состав строки (не более шести символов, наличие только букв A, B, C, D, E и F и цифр и т.д.) и воспользоваться следующим методов Delphi:

function HtmlToColor(s:string; aDefault:Tcolor):TColor;
begin
  //Преобразование строки вида «#FCAB1E» в TColor
  if copy(s,1,1)='#' then 
    s:='$'+copy(s,6,2)+copy(s,4,2)+copy(s,2,2)
  else
    s:='clNone';
  try
    result:=StringToColor(s);
  except
    result:=aDefault;
  end;
end;

Справедливо и обратное преобразование:

function ColorToHtml(DColor:TColor):string;
//Обратное преобразование TColor в строку вида «#FCAB1E»
var tmpRGB : TColorRef;
begin
  tmpRGB := ColorToRGB(DColor) ;
  Result:=Format('#%.2x%.2x%.2x',
                  [GetRValue(tmpRGB),
                   GetGValue(tmpRGB),
                   GetBValue(tmpRGB)]) ;
end;

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.