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)
- procedure TForm1.MudarCorEntra(Sender: TObject);
- begin
- if Sender is TEdit then
- TEdit(Sender).Color := $00BFFFFF
- else
- if Sender is TComboBox then
- TComboBox(Sender).Color := $00BFFFFF;
- end;
- procedure TForm1.MudarCorSair(Sender: TObject);
- begin
- if Sender is TEdit then
- TEdit(Sender).Color := clWhite
- else
- if Sender is TComboBox then
- TComboBox(Sender).Color := clWhite
- 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
- procedure TForm1.FormCreate(Sender: TObject);
- var
- I: Integer;
- begin
- exit;
- for I := 0 to ComponentCount - 1 do
- begin
- if Components[i] is TEdit then
- begin
- TEdit(Components[i]).OnEnter := MudarCorEntra;
- TEdit(Components[i]).OnExit := MudarCorSair;
- end
- else
- if Components[i] is TComboBox then
- begin
- TComboBox(Components[i]).OnEnter := MudarCorEntra;
- TComboBox(Components[i]).OnExit := MudarCorSair;
- end;
- end;
- 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