“Varrendo” componentes no Delphi.


As vezes, quanto temos vários componentes num mesmo formulário, fica cansativo efetuar operações com todos eles ao mesmo tempo, como também aumenta o número de linhas no nosso código fonte. Nesta dica trago uma maneira de como contornar este problema.

Digamos que temos a seguinte situação: Um formulário com 30 TEdits e você que limpar todos eles. Você pode usar o método clear ou definir a propriedade text como nula:

Edit1.text := '';
//ou
Edit1.Clear;

Até aí tudo bem, o problema é que seriam 30 linhas a mais no código. Não fará diferença ao compilador, porém, fica esteticamente ruim para a manutenção (isso porque são 30 linhas, imagine se tivessemos 100 edits).

Então, como proceder? Simples:

procedure TForm1.Button1Click(Sender: TObject);
var
   i : integer;
begin
   for i := 0 to Self.ComponentCount - 1 do
   begin
      if UpperCase(Self.Components[i].ClassName) = Uppercase('TEdit');
         TEdit(Self.Components[i]).Clear;
   end;
end;

Explicando o código:

  • Usamos o for para varrer todos os componentes do formulário;
  • No if, verificamos se a classe do componente é TEdit, ou seja, verificamos se o componente é um TEdit (ou outro componente, TButton, por exemplo.);
  • Caso a condição seja verdadeira, é feito um cast e executado o método clear.

Simples não é?

Dúvidas e sugestões, comentem!

Abraços e até a próxima.

2 comentários sobre ““Varrendo” componentes no Delphi.

Deixar mensagem para Flaviano Jaqueline Cancelar resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.