• 0
Sign in to follow this  
bolomaster

Artigo - Pacotes em Delphi (Modulos)

Question

Salve Galera. dando uma olhado no portal do programador achei este artigo muito interessante se alguém quiser da uma lida ta ai

abraços

Pacotes em delphi(Modulos)

Introdução:

Os pacotes foram introduzidos no Delphi 3. È uma das formas mais fácil de dividir uma aplicação em modulos ou distribuir componentes. Um pacote é uma dll nativa do Delphi. São utilizado para modularização e distribução de objetos. São mais faceis de ser implementados ,já que utilizam a codificação padrão da linguagem Delphi.

Nomenclatura:

Muitos de nos já nos deparamos com arquivos com extensões bpl( Borland Package Libary). São eles que contem as informações do pacote. O padrão utilizado pela Borland na nomenclatura de pacotes é nomeNN.bpk, onde NN é a versão do Delphi. Um exemplo típico é o pacote standard do Delphi, VCL60.BPL. Se este pacote fosse nativo do Delphi 5 o nome dele seria VCL50.BPL.

Se fossemos construir um pacote contendo um pacote chamado estoque, com ele teremos todos os tipos de funções e procedimentos utilizados na manutenção do estoque. O nome do mesmo seria estoque60.bpl.A nomenclatura adotda pela Borland tem por finalidade ajudar no controle das versões dos pacotes.

Classificação dos Pacotes:

Os pacotes podem ser divididos em duas categorias , conforme a forma de distribuição. Pacotes estáticos e dinâmicos.

Os pacotes estáticos são aqueles que obrigatoriamente devera ser carregado com o executável .Como por exemplo um pacote chamado usuario60.bpl no qual terá módulos para o tratamento de usuários como senhas e tipos de acesso.

Dinâmicos são aqueles que necessariamente não é preciso ser carregado com a aplicação. São aqueles que tem funções especificas para um determinado “assunto”.

Um exemplo tipico seria:

- uma aplicação que carregara modulos para a memoria conforme senha do usuario. O usuario do setor pessoal, precisará carregar obrigatoriamente pacote estatico dos usuarios e o pacote dinamico da folha de pagamento. Pois a sua senha determina que ele só tera acesso ao pacote folha de pagamento. Já um administrador, com sua senha terá acesso a todos os pacotes que a empresa possui.

Vantagens e Desvantagens dos Pacotes:

- um pacote poderá reduzir o tamanho do executavel

- um pacote vinculado estaticamente lhe permitirá distribuir parte do codigo

- Se voce criar varios aplicativos Delphi baseados nos mesmos pacotes, poderá distribuir menos codigo, pois os pacotes em tempo de excução são compartilhados

- Na manutenção da sua aplicação só será necessario compilar o pacote que esta dando problemas, evitando assim de ser recompilado todo o projeto.

- O mesmo pacote poderá ser utilizado em uma aplicação C Builder e Delphi, ao contrario de uma dll que podera ser utilizado por praticamente qualquer linguagem de programação

- Quando distribuidos deveram ser colocados no diretorio da aplicação ou no diretorio \windows\system

- O codigo do pacote é o mesmo codigo utilizado no executavel. Já o quando se quer criar uma dll, precisamos conhecer determinadas regras.

- As exeções em dlls deveram ser tratadas exclusivamente dentro da dll, já nos pacotes poderam ser tratradas dentro do codigo do seu executavel.

Run Time:

O Delphi tem como padrão , carregar alguns pacotes no momento da execução do aplicativo. No entanto podemos optar por carregar os pacotes em arquivos separados ou anexados ao executavel .Uma das desvantagens deste tipo de pacote é o executavel ficará com alguns Kb a mais.Embora , não será preciso carregar outros arquivos com a sua aplicação como .pas ou .bpl. Pois estes estaram concatenados com o seu aplicativo.

Exemplificando:

- Abra o Delphi.

- Va no menu File > New > Application

- Insira no form um label , um botao e um edit

- Salve

- Compile o programa

Note que o programa ficou com o tamanho de 367 Kb

"Note que a janela files do nosso pacote se divide praticamente em duas partes contains e requires. Contais é os arquivos que contem o pacotes são os “modulos utilizados “. já requires são as bibliotecas (pacotes) que esses modulos precisaram para executar"

- Agora va no menu Project>Option

- Selecione a aba Packages

- Marque o check Build With Runtime Packages

- Apage toda a linha

- Digite vcl;rtl (que são a bibliotecas que comtem os objetos padrão)

- Precione o botão Ok

- Recompile o programa

Agora o programa ficou com 16 Kb. O Delphi retirou do codigo do executavel as demais bibliotecas desnecessarias .Deixando só as que foram informadas a vcl e a rtl, nas quais contem os objetos padões utilizdos em praticamente qualquer aplicação.

Podemos verificar tambem a existencia dos pacotes de Desing Time, esses pacotes tem por finalidade carregar objetos para a IDE do Delphi.

Pratica:

No nosso exemplo iremos criar um from no qual ira pedir ao usuario uma senha e um login.

- Menu File

- New

- Application

- Adicione dois labels e dois edits

- Adicione tambem um botão

- Troque o caption dos labels respectivamente para usuario e senha

- Troque o caption do botão para ok

- Salve o aplicação o fonte com o nome de untlogin.pas e o projeto de prjlogin.dpr

- Compile e feche o projeto

- Menu File

- New

- Other

- Na aba New selecione Package

- Ira abrir uma janela , precione o botão add

- Va na pasta onde voce salvou o untlogin.pas e selecione-o

- Salve o pacote com o nome de Login60

- Clique no botão compilar. O pacote ira mostrar um erro , clique no botão Ok que ele ira adicionar um novo pacote a sua aplicação a vcl.

- Procure o arquivo Login60.bpl e login.bcp (\arquivos de programas\borland\delphi6\bin) e mova para a pasta que esta os fontes do pacote

- Salve e feche o pacate

O pacote estara pronto para uso tanto estaticamente como dinamicamente.

Usando pacote estaticamente:

- Menu File

- New

- Application

- Project|Options

- Packages

- RunTime Packages

- Precione o botão add

- Selecione o arquivo login60.bcp

- Va no form selecione o evento onshow e digite

frmlogin:=Tfrmlogin.create(application);

try

frmlogin.showmodal;

finally

freeandnil(frmlogin);

end;

- abaixo da seção implementation digite

uses untsenha;

O pacote esta anexado ao executavel estaticamente

Autor: Rafael Ferreira 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this