Показать сообщение отдельно
  #6  
Старый 26.05.2009, 23:25
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Есть способ проще и менее культурный. Правда, непонятно зачем, когда можно сделать нормально... =)
Код:
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;
Ответить с цитированием