quarta-feira, 16 de junho de 2010

Dicas Delphi - Varrendo componentes no Delphi

Salve, salve amigos,

Às 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. Esta dica, é 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.

Take care

Nenhum comentário: