Array
(
)

Como guardo uma cor (TColor) no formato string

Valdirdill
   - 20 ago 2004

Preciso gravar em um arquivo .ini a cor que determinado componente tem quando o programa é encerrado.
Como a varíavel cor do componente é do tipo TColor, não consigo jogá-la para o formato string para que o arquivo .ini aceite.
Como eu poderia fazer isso? Ou seja, eu precisaria transformar clBlue ou qualquer outra cor para uma palavra(string). Ou há outra maneira.
Obrigado.


Tatuweb
   - 20 ago 2004

Use as duas funções abaixo:

#Código

function TColorToHex (Color: TColor) : string;
begin
Result := IntToHex (GetRValue (Color), 2) +
IntToHex (GetGValue (Color), 2) +
IntToHex (GetBValue (Color), 2);
end;

function HexToTColor (sColor: string) : TColor;
begin
Result := RGB (StrToInt (´$´+Copy (sColor, 1, 2)),
StrToInt (´$´+Copy (sColor, 3, 2)),
StrToInt (´$´+Copy (sColor, 5, 2)));
end;



Valdirdill
   - 20 ago 2004

Obrigadão. Funcionou certinho.


Citação:
Use as duas funções abaixo:

#Código

function TColorToHex (Color: TColor) : string;
begin
Result := IntToHex (GetRValue (Color), 2) +
IntToHex (GetGValue (Color), 2) +
IntToHex (GetBValue (Color), 2);
end;

function HexToTColor (sColor: string) : TColor;
begin
Result := RGB (StrToInt (´$´+Copy (sColor, 1, 2)),
StrToInt (´$´+Copy (sColor, 3, 2)),
StrToInt (´$´+Copy (sColor, 5, 2)));
end;



Emerson
   - 21 ago 2004

No Delphi (pelo menos no 7) existe a função ColorToString() e StringToColor().