Есть способ проще и менее культурный. Правда, непонятно зачем, когда можно сделать нормально... =)
Код:
function GetHexColor: string;
begin
Result := '#000000';
if not ColorDialog1.Execute then Exit;
Result := IntToHex(ColorDialog1.Color, 6);
Result := '#' + Copy(Result, 5, 2) + Copy (Result, 3, 2) + Copy(Result, 1, 2);
end;
А вот "нормальный" способ:
Код:
function GetHexColor: string;
var
hex: Cardinal;
clrR, clrG, clrB: Byte;
begin
Result := '#000000';
if not ColorDialog1.Execute then Exit;
clrR := GetRValue(ColorDialog1.Color);
clrG := GetGValue(ColorDialog1.Color);
clrB := GetBValue(ColorDialog1.Color);
hex := clrB or (clrG shl 8) or (clrR shl 16);
Result := '#' + IntToHex(hex, 6);
end;