DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

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

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
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

Facebook Comments Box
  • Giovani Da Cruz
  • 5.353 views
  • 0 comentários
  • 17 de janeiro de 2018

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

Deixe um comentário

Ir ao topo

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