Ir para conteúdo
Fórum Script Brasil
  • 0

Artigo - Pacotes em Delphi (Modulos)


bolomaster

Pergunta

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 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...