dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Como converter TColor para cor HTML?

Converter TColor para o código da cor em HTML.

Como converter TColor para código HTML Show Delphi

Fala galera do Show Delphi, tudo beleza?

Quando trabalhamos com cores é notável que há vários padrões para representa-las. No Delphi não é diferente, sendo que há uma classe específica denominada TColor.

Porém muitas vezes precisaremos da representação em outros padrões, como por exemplo, HTML e utilizar em automatizações de cadastros ou mesmo em integrações.

 

Legal mas como é possível fazer a conversão?

Bem, sem uma ajuda, algumas conversões não são muito intuitivas. Felizmente este post vai simplificar muito a conversão.

Vamos ao Exemplo 1

1
2
3
4
5
6
7
8
9
10
11
function ColorToHtml1(Color: TColor): string;
var
  COL: LongInt;
begin
  COL := ColorToRGB(Color);
  { first convert TColor to Integer to remove the higher bits }
  { erst TColor zu Integer, da die Unnötigen höheren Bit entfernt werden }
  Result := '#' + IntToHex(COL and $FF, 2) +
    IntToHex(COL shr 8 and $FF, 2) +
    IntToHex(COL shr 16 and $FF, 2);
end;

Neste exemplo a informação em TColor é convertida primeiro para RGB e Depois para hexadecimal e concatenado para resultar no padrão hexadecimal do HTML.

Parece difícil? Bem tem mais uma sugestão!

 

Vamos ao código do Exemplo 2

1
2
3
4
5
function ColorToHtml2(Clr: TColor): string;
begin
  Result := IntToHex(clr, 6);
  Result := '#' + Copy(Result, 5, 2) + Copy(Result, 3, 2) + Copy(Result, 1, 2);
end;

Neste exemplo é convertido para hexadecimal e depois formatado no padrão HTML.

 

Gostou? Mas e agora se precisar fazer a conversão ao contrário, é possivel?

Claro!, Vamos a um exemplo simples que vai lhe ajudar muito.

 

Exemplo Inverso, convertendo com HTML para TColor do Delphi

1
2
3
4
function HtmlToColor(Color: string): TColor;
begin
  Result := StringToColor('$' + Copy(Color, 6, 2) + Copy(Color, 4, 2) + Copy(Color, 2, 2));
end;

 

Agora vamos aos testes…

1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
var
  ColorTemp: TColor;
  ident: string;
begin
  Edit1.Text := ColorToHtml($808080);    // $808080 (clGray) ----> #808080
  ColorTemp  := HtmlToColor(Edit1.Text); // #808080 -----> $808080 (clGray)
  ColorToIdent(StringToColor(IntToStr(ColorTemp)), ident); // ---> ident = clGray
  Edit2.Text := ident; // clGray
end;

 

Viu como ficou fácil!

Agora você já pode tranquilamente fazer conversões de TColor para HTML ou mesmo HTML para TColor.

 

Certo pessoal? Dúvidas e sugestões? Deixem nos comentários!

 

Um abraço abraço e até o próximo post. Valeu!

 

Fonte

Baseado no post de Simon Grossenbacher
Em http://www.swissdelphicenter.ch/en/showcode.php?id=250

  • Giovani Da Cruz
  • 0 comentários
  • 17 de janeiro de 2018

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados