Mudar Cor: Edit

Veja nesta Quick, como podemos mudar a cor ao entrar e sair de um Edit.

Olá galera, nesta Quick Tips, irei mostrar, basicamente, como podemos modificar nossos componentes do Delphi, como por exemplo, modificar uma cor ao entrar em uma Edit, e voltar a uma cor padrão ao sair do mesmo.

 

Vamos inicialmente criar uma unit, e salvar a mesma como EditTunning.pas .

 

Na mesma vamos agora declarar a Classe TEdit, e posteriormente os métodos DoEnter, e DoExit

 

unit EditTunning;

interface

uses StdCtrls, Graphics;

type

TEdit = class(StdCtrls.TEdit)

private

FOldColor: TColor;

protected

procedure DoEnter; override;  { Estamos reescrevendo o método DoEnter, para adaptar de acordo com a nossa necessidade}

procedure DoExit; override;  { Estamos reescrevendo o método DoExit, para adaptar de acordo com a nossa necessidade}

end;

 

implementation

 

{ TEdit }

procedure TEdit.DoEnter;

begin

inherited;

   { Observe a variável/field FOldColor, onde ela guarda a cor anterior  }

FOldColor := Color;

   { Observe neste ponto dizemos que a cor ao entrar no Edit será clYellow }

Color := clYellow;

end;

 

procedure TEdit.DoExit;

begin

inherited;

   { Observe a cor agora irá receber o conteúdo da variável/field FOldColor }

Color := FOldColor;

end;

 

end.

 

Como usar então agora nosso EditTunning?

Simplesmente adicionar a Uses, no Formulário onde deseja ter este controle, e automaticamente ao entrar em um controle da Classe TEdit, o mesmo irá se comportar de acordo com a implementação do seu método DoEnter, assim como para o DoExit, porém precisamos dar uma “pernada” no compilador do Delphi, como ?.

 

Vejamos como é simples, ao incluir um Edit, e compilar o projeto, você verá que o mesmo se encarrega de dar uses em StdCtrls, unit esta que contém a classe TEdit. Até ai nenhum mistério. O uses é dado pelo Delphi. Vejamos agora ao adicionar a uses o nosso TEditTunning.

 

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, EditTunning, StdCtrls;

 

Da maneira que esta, o Delphi não fará diferença ao executar, teste para ver, e entender melhor o exemplo.

 

Agora da maneira correta.

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls , EditTunning;

 

Esta pernada explicasse que o Delphi interpreta as propriedades da última classe declarada, sendo assim ao incluirmos o EditTunning antes de StdCtrls, não vemos diferença, agora ao invertemos, a mágica acontece.

 

Obs: Adicione 2 edits para ver o exemplo funcionando

 

 

Dica de onde usar isso!

Já fiz projetos logo no início, onde colocava códigos absurdos para poder mudar a cor de um simples Edit, obviamente muitos passaram por isso, ou alguns estão ainda passando. Concluindo, serve para evitar aquela repetição de código para mudar a cor de Edit, ao receber o foco, bem prático e simples.

 

Fico por aqui ate à próxima Quick Tips.

 

Um abraço

 

 

Wesley Y

wyamazack@rwsolution.com.br

Artigos relacionados