Номери кольорів у HTML та в Делфі
Чому в броузері - #0000FF - блакитний колір, а у делфі - червоний - #FF0000 - червоний колір, а в Делфі - блакитний
Тому що в браузері RGB, а Delphi BGR.
AFAKI, оскільки у HTML записаний масив байт, т.к. HTML типу кроссплатформенний формат і порядок байт у слові його не повинен торкатися. А в Delphi записаний подвійним словом для зручності роботи з ним.
Питання не коректне, тому що в Делфі колір це число, а в ХТМЛ – це рядок. Натяк ясний?
І як переробити Делфівський номер кольору на HTML-івський?
Чому? Броузер вважає, що наприклад clRed - це константа, яка дорівнює рядку "#FF0000", а рядок "#FF0000" можна представити як номер кольору . ?
> Чому? Броузер вважає, що наприклад clRed - це константа, > яка дорівнює рядку "#FF0000", а рядок "#FF0000" можна > представити як номер кольору. ?Сам то зрозумів че запитав?> І як переробити Делфівський номер кольору в HTML-івський? А навіщо це тобі?
Дякую, Неодмінно загляну.
Кому треба, ось процедурка накотив:
function DelephiColorToHTMLColor(DelphiColor: Integer):String;
function RGB_TO_BGR(HEX_RGB:String): String; var i:Integer; begin Result := ""; for i := Length(HEX_RGB) downto 1 do Result := Result + HEX_RGB[i]; end;
begin Result := Format("%x",[DelphiColor]]); while Length(Result)
> Result := ""; > for i := Length(HEX_RGB) downto 1 do > Result := Result + HEX_RGB[i];не зовсім правильно. треба ж не перевернути рядок, а поміняти місцями R і B. Якщо колір буде 916739 ти повинен отримати 396791, а не 937619.
Дякую за поправку, тоді :
function DelephiColorToHTMLColor(DelphiColor: Integer):String;
function RGB_TO_BGR(HEX_RGB:String): String; var i:Integer; begin Result := ""; i: = Length(HEX_RGB); while i > 0 do begin Result := Result + HEX_RGB[i-1] + HEX_RGB[i]; i: = i - 2; end; Result := Result + HEX_RGB[i]; end;
begin Result := Format("%x",[DelphiColor]]); while Length(Result)