ColorToHtml / HtmlToColor Dönüştürmek

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
RamazanG
Üye
Mesajlar: 73
Kayıt: 16 Tem 2010 03:38

ColorToHtml / HtmlToColor Dönüştürmek

Mesaj gönderen RamazanG »

HTML içinde renkler, sanki bir metinmiş gibi RGB (Kırmızı yeşil mavi) biçimindedir. Rengin her parçası iki rakamlık bir Hex değeridir.
Bu uygulamayla TColor değerini HTML değerine dönüştürebilir, ya da tam tersini yapabilirsiniz.

Kod: Tümünü seç

uses SysUtils, Graphics;

////////////////////////////////////////////////////////////////
// Rengi html renk metnine dönüştür
// clRed => #FF0000
function Sto_ColorToHtml(const Color: TColor): String;
var
  iRgb: Longint;
  iHtml: Longint;
begin
  // Sistem renklerini RGB renklerine dönüştür
  iRgb := ColorToRGB(Color);
  // BBGGRR değerini, RRGGBB değerine dönüştür
  iHtml := ((iRgb and $0000FF) shl 16) or // Kırmızıyı sola kaydır
           ( iRgb and $00FF00) or         // Yeşili ortaya yerleştir
           ((iRgb and $FF0000) shr 16);   // Maviyi sağa yerleştir
  // HTML metni oluştur
  Result := '#' + IntToHex(iHtml, 6);
end;

////////////////////////////////////////////////////////////////
// HTML metnini bir renge dönüştür,
// EConvertError uygulaması kullanılabilir
// #0000FF -> clBlue
function Sto_HtmlToColor(Color: String): TColor;
var
  iHtml: Longint;
begin
  // Öndeki karakteri sil '#'
  if (Length(Color) > 0) and (Color[1] = '#') then
    Delete(Color, 1, 1);
  // HTML metnini tam sayıya dönüştür
  iHtml := StrToInt('$' + Color);
  // RRGGBB karakterini, BBGGRR karakterine dönüştür
  Result := ((iHtml and $FF0000) shr 16) or // Kırmızıyı sağa kaydır
            ( iHtml and $00FF00) or         // Yeşili ortaya yerleştir
            ((iHtml and $0000FF) shl 16);   // Maviyi sola kaydır
end;
Cevapla