Esse artigo faz parte da revista Clube Delphi Magazine edição 97. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler essa revista em PDF.imagem_pdf.jpg

Editorial

        

Certa vez criei uma unit daquelas tipo “faz tudo” (quem nunca criou sua util.pas que atire a primeira pedra). Lembro-me que existia um procedimento genérico que recebia um objeto como parâmetro e modificava uma determinada propriedade de nome fixo, Foo por exemplo. Esses objetos podiam ser de diversos tipos. Como bom conhecedor do Object Pascal, pensei de cara: declaro como parâmetro um tipo que seja comum (ancestral) a todas as classes que irei passar. Não adiantou, porque os objetos eram de tipos que possuíam diferentes ancestrais. Eu poderia usar RTTI e passar um TObject, testar um por um todos tipos, com o is e as e fazer um typecast, mas isso causaria uma forte dependência além de várias dezenas de ifs. Pensei outra alternativa, faço todas as minhas classes implementarem uma interface IFoo e declaro meu parâmetro do método da unit para aceitar um IFoo. Não daria, existiam classes que eu não podia modificar e aquilo seria mais POG (Programação Orientada a Gambiarra) do que POO. Foi aí que me lembrei da unit Typinfo. Yes! Então, fui de cara verificar a procedure SetPropValue, que recebe como parâmetro um objeto (qualquer coisa) e usa RTTI para configurar o valor da propriedade que você quiser. A propriedade pode ser qualquer uma, pois é passada como string e não depende do tipo. Resolvido meu problema, com uma linha, não dependi de tipo algum exceto TObject. O resultado foi:

          SetPropValue(ObjetoPassado,'Foo',NovoValor);

Está certo que usar RTTI reduz em 5x a velocidade de um código compilado, mas pelo menos reduziu meu código em 100x, além de resolver meu problema de maneira elegante e sem apelar à POG. O que quero dizer com este exemplo é que a RTTI é um assunto tão importante, ao mesmo tempo que é tão pouco conhecido, que escolhemos como matéria de capa para esta edição especial. Confira sobre TypInfo, SetPropValue e muito mais de RTTI no excelente artigo de Gustavo Chaurais.

E temos muito mais nesta edição! Quer novidades? Que tal dicas do GridView, o MELHOR de um dos novos componentes do ASP.NET 2.0 do novíssimo RAD Studio 2007. Se quer Web, mas não em .NET, confira as 15 dicas trazidas pelo Fabrício e acabe com seus problemas no PHP. PHP também é o tema do artigo do Adriano, sobre GET e POST. Está começando? Não fique mais quieto quando o assunto for multicamadas, e aprenda com o editor como desenvolver suas primeiras aplicações distribuídas com chamadas remotas de procedimento, e também como trabalhar com a API do Windows no artigo do Adriano. E finalmente confira a conclusão do mini-curso de locadora on-line do Maikel.

        

Boa leitura, sucesso com o Delphi e ASP.NET 2.0!

Não deixe de conferir nosso novo BLOG: clubedelphiphp.blogspot.com