Dica : Cores Personalizadas no Delphi
By tresloukadu
Muitas vezes queremos trocar as cores de certos componentes e inclusive do próprio form no Delphi. Porém as cores que existem no Object Inspector não são muito legais ou não combinam uma com as outras. Pensando nisso o Delphi permite trocar as cores dos componentes através do código. Tudo isso com a ajuda de um componente chamado TColor. É muito fácil fazer a troca das cores, assim podemos deixar a nossa aplicação com um aspecto mais legal e bonito e inclusive podemos utilizar cores em hexadecimal do mesmo jeito que é feito no HTML.
Antes de mais nada eu quero indicar para todos se cadastrarem no site Kuler da adobe. Esse website permite você ter acesso a esquema de cores que combinam uma com a outra. Assim você nunca vai errar na ora de utilizar as cores na sua aplicação. Em adição a isso tudo você pode criar uma conta e com isso fazer os seus próprios esquemas de cores. Depois que você está com as cores escolhidas é só pegar o código em hexadecimal que o Kuler fornece e utilizar no Delphi. O endereço para o site Kuler é o seguinte:
Pelo o que andei verificando o Delphi não aceita cores com o código hexadecimal no formato HTML diretamente. Então para podemos utilizar as cores como no formato HTML temos uma função fornecida no site About que nos ajuda a realizar essa tarefa de colorir os componentes. O endereço do artigo é:
http://delphi.about.com/cs/adptips2001/a/bltip0301_5.htm
Bom vamos ver algo prático. O exemplo é bem simples, somente uns botões para trocar as cores do componente panel.
{
Sobre: Código de exemplo de como utilizar cores personalizadas.
Autor: Dicas Delphi – www.dicasdelphi.com.br
Data: 13/11/2008
}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function HexToTColor(sColor : string) : TColor;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//TCOlor – Componente do Delphi
//HexToTColor – Função que converte uma cor Hexadecimal
//no formato HTML para o formato utilizado em TColor.
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//Atenção: Verfique que a cerquilha # que é utilizada no HTML
//aqui ela não vai.
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Panel1.Color := TColor(HexToTColor(‘A1000A’));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Panel1.Color := TColor(HexToTColor(‘BDAF7B’));
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Panel1.Color := TColor(HexToTColor(‘CFD649′));
end;
{
Função fornecida pelo website
http://delphi.about.com/cs/adptips2001/a/bltip0301_5.htm
em 13/11/2008
}
function TForm1.HexToTColor(sColor : string) : TColor;
begin
Result :=
RGB(
StrToInt(‘$’+Copy(sColor, 1, 2)),
StrToInt(‘$’+Copy(sColor, 3, 2)),
StrToInt(‘$’+Copy(sColor, 5, 2))
) ;
end;
end.
Analisando esse código podemos ver que a linha que nos interessa é a seguinte:
Podemos ver nessa linha que o retorno da função HexToTColor está sendo enviado para o componente TColor. Outra coisa interessante é que o argumento na função HexToTColor é o valor em hexadcimal fornecida pelo site Kuler da Adobe.
O código para download do exemplo acima, juntamente com o executável está aqui:
http://www.dicasdelphi.com.br/wp-content/uploads/2008/11/teste_cores.rar
t+
Delphi , HexToTColor , TColor , Trocar Cores 


novembro 13th, 2008
Rogério Lira
setembro 7th, 2009
Caro,Resolveu o meu problema,
muito obrigado pela dica.