22. februar 2004 - 19:40
#1
Lidt kode jeg har liggnede:
function ColorToHTMLColor(cl: TColor): string;
var
rgbColor: TColorRef;
begin
rgbColor := ColorToRGB(cl);
Result := '#' + Format('%.2x%.2x%.2x',
[GetRValue(rgbColor),
GetGValue(rgbColor),
GetBValue(rgbColor)]);
end;
function IsHtmlColorOK(st: String): Boolean;
var
I: Integer;
begin
Result := Length(st) = 7;
if Result then
Result := st[1] = '#';
if Result then
for I := 2 to Length(st) do
if Result then
Result := st[I] in ['0'..'9', 'A'..'F'];
end;
function HTMLColorToColor(st: String): TColor;
var
Red, Green, Blue: Byte;
begin
if not IsHtmlColorOK(st) then
begin
Result := clNone;
Exit;
end;
Delete(st, 1, 1);
Red := StrToInt('$' + Copy(st, 1, 2));
Green := StrToInt('$' + Copy(st, 3, 2));
Blue := StrToInt('$' + Copy(st, 5, 2));
Result := RGB(Red, Green, Blue);
end;
22. februar 2004 - 20:01
#4
Limegrøn i Delphi: $0000FF80
Limegrøn i HTML: #80FF00
I begge systemer er farven skrevet med det hexadecimale talsystem.
I HTML er rækkefølgen Rød-Grøn-Blå, altså RRGGBB.
I Delphi er der byttet lidt rundt på det, der er rækkefølgen Blå-Grøn-Rød, altså BBGGRR.
Tegnet "$" betyder i Delphi, at det er et hexadecimalt tal.
22. februar 2004 - 20:08
#6
De betyder normalt ikke noget, og hvis de endelig gør, så kan jeg ikke lige huske hvad.