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
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.

Clique aqui para saber como acessar este post

1) Torne-se um assinante MVP e por apenas R$ 69,90 por mês você terá acesso completo a todos os posts. Assinar MVP

2) Adquira Créditos: comprando R$ 180,00 em créditos esse post custará R$ 1,20. Comprar Créditos

post favorito     comentários
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 e pós-graduado em administração de bancos de dados. Certificado Delphi Developer, trabalha com Delphi desde 2005 adotando arquiteturas cliente- [...]

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

Mais posts