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