Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Sistema de Locadora em Delphi 2010 – Parte 1
Sistema de Locadora em Delphi 2010 – Parte 2
Sistema de Locadora em Delphi 2010 – Parte 4
Sistema de Locadora em Delphi 2010 – Parte 5
Sistema de Locadora em Delphi 2010 – Parte 6
Sistema de Locadora em Delphi 2010 – Parte 7
Nesta parte iremos dar continuidade no processo de elaboração do nosso sistema de locadora, abordando os conceitos da criação dos cadastros, otimização de código e tempo de manutenção e abordagem dos recursos de memória utilizados pelo compilador.
Para que serve
Os recursos mostrados neste artigo são fundamentais para o desenvolvimento de aplicações performáticas, que adotem boas práticas de programação, e podem trazer inúmeros benefícios na manutenabilidade diária de seus projetos. Veremos que os cadastros base servem para poupar codificação e reaproveitar funcionalidade em várias partes da aplicação.
Em que situação o tema é útil
Aplicações de escopo geral independente de arquitetura podem e devem adotar otimizações de código, e entendimento dos recursos de memória. Já a herança é útil em projetos com vários formulários com características em comum.
Resumo do DevMan
Nesta parte iremos abordar principalmente a possibilidade de alteração/modificação de um projeto. Veremos o quão pode ser simples o processo de manutenção e alteração se utilizarmos conceitos de boas práticas em nossos projetos. Entenderemos no decorrer do projeto como podemos realizar otimizações de memória no desenvolvimento e quais serão os benefícios disso para nossa aplicação.
Nas partes anteriores de nossos artigos iniciamos a criação de uma aplicação passando por etapas importantes, e outras que nem sempre são observadas pelos desenvolvedores, porém muito observadas por nossos clientes e usuários. Primeiramente abordamos as questões do banco de dados tratando da modelagem da aplicação, criação do banco de dados, organização através dos domínios, geradores de IDs, em seguida vimos como modularizar / organizar uma aplicação utilizando o conceito dos Data Modules, por fim, vimos um pouco da suíte gráfica Ribbon Controls. Nesta parte de nosso mini-curso iremos abordar uma questão muito importante no desenvolvimento de um software, o gerenciamento de memória de sua aplicação. Iremos criar um novo Data Module de uma maneira diferente, onde nosso projeto se encarregará de carregar os formulários e módulos de dados apenas quando necessário, dispensando a sobrecarga de memória logo na primeira execução. Veremos também durante este artigo a capacidade de modificação e alteração de uma aplicação bem projetada.
Acrescentando um novo Data Module à aplicação
Antes de iniciar a criação dos cadastros, adaptaremos nosso exemplo para possibilitar uma centralização das consultas de nossa aplicação. Para isso, acesse o menu File > New > Other, selecionando do lado esquerdo a categoria Delphi Files e do lado direito Data Module. Altere sua propriedade Name para DMPesquisa e adicione quatro de cada um dos seguintes componentes: SQLDataSet, DataSetProvider e ClientDataSet. Renomeie os SQLDataSets respectivamente para sqlPesquisaFita, sqlPesquisaCliente, sqlPesquisaTipo e sqlPesquisaCategoria. Faça o mesmo processo para os DataSetProviders, nomeando-os para dspPesquisaFita, dspPesquisaCliente, dspPesquisaTipo e dspPesquisaCategoria. Por último, faça o mesmo processo para os ClientDataSets modificando-os para cdsPesquisaFita, cdsPesquisaCliente, cdsPesquisaTipo e cdsPesquisaCategoria.
Terminando a adição destes componentes, passaremos para suas devidas configurações. Ligue primeiramente seus SQLDataSets aos DataSetProviders de respectivos nomes através da propriedade DataSet de cada um. No DataSetProvider habilite em Options a opção [poAllowCommandText], para que seja possível passar instruções SQL ao ClientDataSet e, por último, conecte os DataSetProviders aos ClientDataSets por meio das propriedades ProviderName. Sendo assim teremos feito a configuração dos componentes. Passaremos agora para a parte de codificação que é muito simples, porém, muito interessante, faremos com que este Data Module seja criado como uma função. Observe a ...