quarta-feira, 30 de junho de 2010

Delphi: Copy, Inherit e Use - Repository

Uma grande vantagem que as softwares de desenvolvimento apresentam é a herança de objetos.
Por isso os chamamos de Programação orientada a objetivos.
No Delphi podemos encontrar essa possibilidade, para isso utilizarei como exemplo o Repository do Delphi.

O repositório do Delphi é um local para armazenamento de objetos, como formulários e projetos, que facilita o compartilhamento desses objetos por vários projetos.


Usaremos o exemplo de um template, ou seja, digamos que você criou um cadastro de clientes para seu programa e deseja criar um cadastro de usuários. Muitos dados são semelhantes então você pode utilizar o cadastro já salvo para criar o segundo.


Primeiro faça o seguinte:
No form já salvo com o template pronto, com botões, edits, labels, etc... clique com o botão direito e vá em adicionar do repositório.
Após, você definira um nome, TITLE, que o identificará e ira escolher qual subpasta deseja salvá-lo. Pode ser na padrão definida pelo delphi, DELPHI FILES.


Pronto, agora você irá buscar este template:
Em: FILE - NEW - OTHER...


Abrirá uma janela de opções, no nosso caso foi adicionado o form com nome de exemplo, então deverá aparecer uma janela conforme abaixo:


A partir disto, você terá 3 opções:
COPY - copiar
INHERIT - herdar
USE - usar


Basicamente a diferença entre eles é:
COPY - o Delphi irá criar uma cópia separada do objeto original que está no repositório. Qualquer alteração no original posteriormente não vai afetar essa cópia e qualquer alteração na cópia é independente do que está no repositório. A unidade do formulário, quando criada, e ainda não salva, fica em memória como "Unit2". Isso permite você salvar com um nome qualquer.


INHERIT - faz uma referência ao original (ou seja, acrescenta o formulário original dentro do projeto) e cria uma nova classe derivada da original, TForm1. O novo formulário será chamado de 'FormBase1', com a classe 'TFormBase1'.  A unidade do formulário, quando criada, e ainda não salva, faz com que qualquer alteração no original, que está no repositório, será herdada pela classe derivada. Uma desvantagem do inherit é que não se pode remover componentes dele, apenas oculta-los ou desabilita-los.


USE - não copia o objeto original, mas compartilha com o projeto atual. Nesse caso, alterações feitas no item dentro do projeto afetam o item no repositório e vice-versa. Se vários projetos usarem o mesmo item, todos eles compartilham o mesmo item. 


Desta forma, cabe ao programador analisar e definir qual será melhor aplicado ao seu caso!!!!
Ateh!!!!!!!!

Nenhum comentário: