Varrendo componentes de um form com enumerator

No Delphi é muito fácil varrer os componentes de um TForm usando enumerator e for in. Bem mais prático que usando for to. No exemplo abaixo, faço uma verradura por todos os componentes do form setando todos os TLabel como transparentes:

var
  Component: TComponent;
begin
  for Component in Self do
    if Component is TLabel then
      TLabel(Component).Transparent := True;
end;

9 Comments

  • Chris
    22/10/2007 - 09:49 | Permalink

    Legal Erick a dica, isso eu sei q tem no VS, mais no Delphi eh uma novidade pra mim ou melhor pra todos, resumindo nada nesse mundo se cria tudo se copia ;)

    at+

  • 22/10/2007 - 09:53 | Permalink

    Eu acho que as boas idéias devem ser copiadas sempre. :)

  • 22/10/2007 - 10:00 | Permalink

    Parabéns Erick por está sempre mostrando formas mais práticas de usar o Delphi. Isso mostra a sua experiência e conhecimento na linguagem e inspira que outros procurem conhecer mais o poder que tem em mãos.
    Chris, esse recurso do Delphi na verdade é bem antigo, para ser sincero, desde sempre. A única parte do código que é mais recente (Delphi 2005) é a parte do for..in..do. O arraus Components, representado no código por Self, sempre existiu nos conteiners decendentes de TComponent, como o TForm, por exemplo. Sendo assim Self.Components. Como a propriedade array Components é a propriedade default da classe, não é necessário fazer referência a ela, como o seguinte: Self.Components[2] é a mesma coisa que Self[2]. Por isso o for Component in Self do… ou seja, se alguém copiou alguém, não foi o Delphi.

    Abraço a todos

  • Sergio
    23/10/2007 - 10:05 | Permalink

    Boa dia Erick,vai na borcon esse ano??
    abraços.

  • 23/10/2007 - 10:11 | Permalink

    Vou sim. :)

  • Sergio
    23/10/2007 - 12:40 | Permalink

    Beleza nos encontramos lá,gosto dos seus posts,todos os dias entro para ver novidades.

    vai participar tambem do happy hour?

  • Sergio
    23/10/2007 - 12:42 | Permalink

    Queria comentar sobre algumas pessoas falando sobre delphi for net, falando que o delphi vai durar no maximo 5 anos e vai virar um clipper da vida, que hoje o desenvolvimento é voltado para web e mobile, e que as empresas estão faznedo, é migrando seus projetos delphi para c# asp.net ou java!
    o que vocês acham??

    abraços.

  • 23/10/2007 - 20:05 | Permalink

    Faz tempo que escuto essa conversar Sérgio, e o Delphi só crescendo. A cada versão melhor!

    Abraço a todos

  • 23/10/2007 - 23:21 | Permalink

    Sérgio, esse não é um assunto simples que dê para discutir nos comentários do blog. Mas certamente daqui 5 anos o Delphi estará muito bem. :)

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>