Extendendo TDataset para usar for in
Veja neste artigo dicas de como aproveitar os recursos do Delphi com muita criatividade.
A Embarcadero nos últimos lançamentos do Delphi vem acrescentando em cada versão recursos que a borland/codegear deixaram a muito a desejar, destes recursos o que mais me chamou a atenção foi a implementação do "for in" que deixa o nosso código mais elegantes.
Alem disso agora nos permite "extender" uma class sem a necessidade de fazer herança, como se fosse um "puxadinho",neste artigo vou demonstrar que com um pouco de criatividade podemos ter uma nova visão de trabalhar com o nosso TDataset.
Em nosso dia a dia costumamos fazer muitas interação em nossos TDataset:
Assim conseguimos eliminar pelo menos 2 linhas de código,mais para conseguimos usar o for in necessitaríamos de um enumerador que infelizmente o TDataset não tem, então vamos implementar o nosso.
FCounter := -1;
Porem ainda temos um problema de como acessar o nosso enumerador em nosso TDataset, e além disso temos que acessar o enumerador nas class filhas de TDataset como por ex TQuery , TClientDataset, TZTable e a nossa lista e imensa, porem com o Delphi 2010 venho o recurso da class helper for que permite extender nossa class.
Agora podemos fazer um interação usando for in.
// AGora podemos acessar nossos registros
Mais ainda não tivemos muitas vantagens além de diminuir duas linha de nosso código inicial, porem o acesso aos nossos fields continua da maneira de sempre.
DataSet.FieldValues['Nome']
// Ou se preferir
DataSet.FieldByName('Nome').Value
Bem agora deixo para segunda parte para que possamos melhorar o visual do nosso código eliminando os acesso as fields.