Mudando Cores: onEnter e OnExit - Delphi

Veja neste artigo como podemos modificar as cores quando entrarmos ou sairmos de um determinado componente. Observe que esta é a maneira mais simples de se fazer, existem outras maneiras também.

Olá amigos. O objetivo do artigo é ensinar a você, como colocar cor de fundo nos componentes em tela.

Vamos iniciar abrindo o Delphi e criando uma nova aplicação, feito isto iremos colocar três TEdit e um TMemo no formulário, onde será mostrada a cor de fundo em cada um deles. A imagem abaixo mostra uma sugestão de tela:

Vamos a unit do formulário declarar duas procedures que ficará dentro do private, a primeira procedure chamaremos de DoEnterClick(Sender : TObject) e implementa-la com SHIFT+CTRL+C, a segunda procedure chamaremos de DoExit(Sender : TObject) e implementa-la com SHIFT+CTRL+ C , essas procedures irão simular o evento OnEnter e OnExit de cada TEdit e TMemo para que isto não seje feito em cada componente em tela. Como segue no código abaixo:

Listagem 1: Criação dos métodos
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Memo1: TMemo; procedure FormCreate(Sender: TObject); private { Private declarations } procedure DoEnter(Sender : TObject); procedure DoExit(Sender : TObject); public { Public declarations } end;

Feito isto, vamos a implementação das procedures DoEnter e DoExit Como Segue o código abaixo:

Listagem 2: DoEnter
procedure TForm1.DoEnter(Sender: TObject); begin if (Sender is TEdit)then begin TEdit(Sender).Color := clYellow; end else if (Sender is TMemo) then begin TMemo(Sender).Color := clYellow; end; end;

Listagem 3: DoExit

procedure TForm1.DoExit(Sender: TObject); begin if (Sender is TEdit)then begin TEdit(Sender).Color := clWindow; end else if (Sender is TMemo) then begin TMemo(Sender).Color := clWindow; end; end;

Agora no OnCreate do nosso formulário, vamos implementar como mostra o código abaixo fazendo a varredura dos componentes em tela para ser atribuída a cor:

Listagem 4: FormCreate
procedure TForm1.FormCreate(Sender: TObject); var I : Integer; begin for I := 0 to ComponentCount - 1 do begin if (Components[I] is TEdit) then begin (Components[I] as TEdit).OnEnter := DoEnterClick; (Components[I] as TEdit).OnExit := DoExit; end else if (Components[I] is TMemo) then begin (Components[I] as TMemo).OnEnter := DoEnterClick; (Components[I] as TMemo).OnExit := DoExit; end; end; end;

Aprenda mais sobre Delphi

É isto, teste sua aplicação e veja se esta sendo atribuída a cor a cada componente que for passado. Vou ficando por aqui pessoal até a próxima.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados