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:

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.