DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Este é um post disponível para assinantes MVP
###
ClubeDelphi 118 - Índice

Sistema de Locadora em Delphi 2010 – Parte 3 - Clube Delphi 118

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.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

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 Listagem 1 e veja também o resultado final na Figura 1.

Listagem 1. Modificações no Data Module

private

{ Private declarations }

public

{ Public declarations }

end;


var

DM : TDMPesquisa;


function DMPesquisa : TDMPesquisa;


implementation


uses untDMPrincipal;


{$R *.dfm}


function DMPesquisa : TDMPesquisa;

begin

//Adicione Forms ao uses

if not Assigned(DM) then

DM := TDMPesquisa.Create(Application);

Result := Dm;

end;


Observando o código da Listagem 1, podemos destacar alguns pontos interessantes. Note primeiramente que renomeamos a variável global da sessão var antes denominada DMPesquisa, apenas para DM, porém, preservamos o tipo TDMPesquisa para a mesma. Logo abaixo criamos uma função global com o nome de DMPesquisa. Atentando à implementação no final da listagem, apenas verificamos se a variável DM está nula, através do método Assign, criamos o DM e o retornamos. A segunda questão a destacar é o modo de criação da variável DM. Perceba que a mesma foi criada passando como parâmetro Application e não Self, ou nil como o de costume. Do modo como fizemos esta função, você perceberá que a referência a algo neste Data Module será algo imperceptível para nós, dispensando inclusive a necessidade de que este objeto esteja na sessão Auto-Create do projeto (a lista que contém os forms e DataModules criados automaticamente).


Nota do DevMan

Quando é criada alguma classe herdada de TComponent, possuímos dentro do construtor um parâmetro chamado Owner, observe a declaração do construtor do Data Module:


constructor TDataModule.Create(AOwner: TComponent);


Este parâmetro do construtor define quem será o responsável pela destruição do objeto criado. Deste modo, utilizam-se comumente os seguintes valores:

"

A exibição deste artigo foi interrompida

Este post está disponível para assinantes MVP.



Colunista e editor técnico da revista Clube Delphi. Graduado em Sistemas de informação, pós-graduado em administração de bancos de dados e pós-graduando em engenharia de software e metodologias ágeis. Certificado Delphi Developer, [...]

O que você achou deste post?
Publicidade
Serviços

Mais posts