Olá galera, nesta Quick Tips irei mostrar como trabalhar com Method Pointer no Delphi, vou criar dois métodos para poder implementar nos Edits e Combobox, mas nada impede de vocês usarem outros componentes claro que adaptando o exemplo.

 

  Mas o que seria Method Pointer ?

R: Method pointer é um recurso que nos possibilita atribuir procedures e funções à variáveis ou à outras procedures e funções, isso é possivel porque cada método possui um ponteiro, com isso apenas apontamos a referencia de uma procedure/function/variavel para a referencia de um outro método

 

Vamos ao exemplo, adicione:

                1 Edit

                1 Combobox

 

 

Criar uma procedure MudarCorEntra(Sender: TObject)

  1. procedure TForm1.MudarCorEntra(Sender: TObject);
  2. begin
  3.   if Sender is TEdit then
  4.     TEdit(Sender).Color := $00BFFFFF
  5.   else
  6.   if Sender is TComboBox then
  7.     TComboBox(Sender).Color := $00BFFFFF;
  8. end;

 Criar uma procedure MudarCorSair (Sender: TObject)

  1. procedure TForm1.MudarCorSair(Sender: TObject);
  2. begin
  3.   if Sender is TEdit then
  4.     TEdit(Sender).Color := clWhite
  5.   else
  6.   if Sender is TComboBox then
  7.     TComboBox(Sender).Color := clWhite
  8. end;

 

Create do Form : Estamos varrendo aqui todos os componentes que tem no form, e verificando se eles pertencem a classe TEdit, e TCombobox, caso pertença, podemos fazer o Method Pointer

 

  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3.   I: Integer;
  4. begin
  5. exit;
  6.   for I := 0 to ComponentCount - 1 do
  7.   begin
  8.     if Components[i] is TEdit then
  9.     begin
  10.        TEdit(Components[i]).OnEnter := MudarCorEntra;
  11.        TEdit(Components[i]).OnExit  := MudarCorSair;
  12.     end
  13.     else
  14.     if Components[i] is TComboBox then
  15.     begin
  16.        TComboBox(Components[i]).OnEnter := MudarCorEntra;
  17.        TComboBox(Components[i]).OnExit  := MudarCorSair;
  18.     end;
  19.   end;
  20. end;

 

Obs : Você pode melhorar este onCreate para habilitar os componentes, ou desabilitar ou limpar por exemplo, fica ai com a imaginação de vocês.

 

Fico por aqui até a  próxima Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br