Criando templates e utilizando o repositório para compartilhar objetos

 

Conhecer o ambiente de desenvolvimento de qualquer ferramenta e saber utilizá-la é essencial para que o usuário tenha maior produtividade em suas atividades. Com o Delphi, por ser um ambiente RAD de desenvolvimento, conhecer sua IDE e saber utilizar os seus recursos é sem dúvida primordial.

Neste artigo veremos como é simples compartilhar objetos entre projetos e entre uma equipe de desenvolvedores utilizando o reposítorio de objetos através da configuração do diretório em Tools -> Environment Options -> Shared Repository. Em praticamente todas as caixas de diálogo existentes nos itens de menu da IDE apresentam o botão Help para visualizarmos as explicações necessárias do recurso corrente. Veremos a seguir o trecho que fala a respeito sobre o item Shared Repository:

testai1.bmp 

Podemos observar que existe um determinado arquivo (delphi32.dro = delphi repository object) que a IDE utiliza para carregar os itens encontrados no Repositório de Objetos. Este arquivo como o help informa normalmente encontra-se no diretório bin padrão do delphi. Para os iniciantes, o repositório de objetos é o local onde podemos encontrar uma diversividade de objetos para as mais variadas necessidades, além de podermos extendê-lo com objetos criados por nós desenvolvedores.

Faremos como exemplo uma tela de apresentação padrão e adicionaremos ao Repositório de Objetos para que ela esteja disponível para qualquer projeto que deseja utiliza-lá.

Por fim veremos como é simples compartilhar os objetos para os membros de uma equipe de desenvolvedores, o qual é bastante utilizado para compartilhar “templates” de objetos que desempenham tarefas básicas em todo o tipo de sistema.

Criando a Tela de Apresentação

Com o Delphi aberto use File | New -> Form. Renomeie o formulário para fmTempSplah e salve-o como TEMPSplah.pas. No formulário, configure as propriedades BorderStyle e Position para bsNone e poDesktopCenter respectivamente. Adicione os seguintes componentes e configure-os como mostra a Figura 1:

 

Bevel

Shape: bsFrame

Align: AllClient

Timer             

       Interval: 7000

Image

Picture: imagem de apresentação

Label

Caption: www.clubedelphi.net  - feita para desenvolvedores

testai2.gif 

Figura 1. Template de Apresentação

 

Com a tela configurada, falta apenas atribuir ao evento OnTimer do objeto Timer, o código para desabilitá-lo ao completar os 7 segundos atribuídos na propriedade Interval. Será através da propriedade enabled do objeto Timer que o formulário principal irá verificar se deve iniciar a sua execução.

 

procedure TfmTEMPSplash.Timer1Timer(Sender: TObject);

begin

  Timer1.Enabled := False;

end;

 

Nossa tela já pode ser adicionada ao repositório de objetos para ser utilizada entre os projetos. Para isso com o botão direito em qualquer parte do formulário clique em Add to Repository. A Figura 2 mostra a tela que deve ser digitada às informações referente ao objeto atual:

testai3.gif 

Figura 2. Adicionando o objeto ao repositório

Todas as informações são autodescritivas, mas uma em especial deve ser considerada: Page. Neste item você pode indicar que seu objeto irá pertencer há uma das páginas existentes do repositório ou que irá pertencer a uma nova página, informando um novo nome, como foi feito no exemplo. Agora já é possível visualizar o template adicionado ao repositório conforme mostra a Figura 3:

testai4.gif 

Figura 3. Template de Apresentação adicionado ao repositório

Utilizando o Template Criado

Agora já é possível utilizar o template nos projetos que tenham uma tela de apresentação do sistema através do repositório.  Faremos um exemplo simples em um novo projeto onde ao executar a aplicação a tela de apresentação será mostrada de acordo com o tempo estabelecido no objeto timer do template. Crie uma nova aplicação usando File || New -> Application. Salve o projeto e o formulário principal e em seguida use File || New -> Other. No repositório de objetos selecione a página criada para o template de exemplo com a opção Inherit. Com isso foram adicionados ao projeto à unidade do template criado anteriromente e um novo objeto descendente do template que será utilizado em nosso exemplo. A opção Inherited informa que queremos criar um objeto que herdará o comportamente de uma determinada classe, com isso é preciso ter a referência à classe base no projeto atual, ou seja, a identificação da classe base deve estar presente ou referenciada ao projeto, pois o delphi precisa saber onde está localizada a classe base do objeto criado. Com a opção Copy teríamos uma cópia do template em nosso projeto e através da opção Use estaríamos utilizando fonte original do template em nosso projeto.  A real vantagem de usar a herança é herdar o comportamento padrão da classe e poder customizar a classe descendente. Em um sistema real iríamos ter uma alteração na imagem de apresentação e possivelmente no intervalo de tempo, mas como usamos herança não afetaríamos o comportamento padrão da classe, que possui uma imagem padrão entre outras características. Salve a nova unidade como MySplash.pas e renomeio o formulário para fmMySplash.

Poderíamos neste momento fazer as devidas alterações em nossa tela de apresentação, mas para o exemplo deixarei o comportamento padrão da classe base. Falta-nos apenas referenciar à aplicação como devemos executar nossa tela de apresentação. Para isso, use Project -> View Source e codifique conforme abaixo:

 

begin

  Application.Initialize;

 

  fmMySplash := TfmMySplash.Create(Application);

  fmMySplash.Show;

  fmMySplash.Update;

 

  repeat

    Application.ProcessMessages;

  until not fmMySplash.Timer1.Enabled;

 

  fmMySplash.Hide;

  fmMySplash.Free;

 

  Application.CreateForm(TForm1, Form1);

  Application.Run;

end.

 

Após inicializar a aplicação, o formulario de apresentação é criado e permanecerá ativo até o objeto Timer ficar desabilitado, conforme trecho destacado.

Compartilhando objetos entre a equipe de desenvolvimento

Após mostrar como é simples criar e adicionar um objeto no repositório veremos como compartilhar os objetos entre uma equipe de desenvolvimento. Como mostrado na introdução, devemos indicar o caminho onde se localiza o arquivo delphi32.dco através da configuração do diretório em Tools -> Environment Options -> Aba Preferences -> Shared Repository. Como vimos, é através deste arquivo que o delphi busca as informações dos objetos e podemos compartilhar este arquivo em um diretório da rede e configurar o ambiente de cada membro da equipe para que os objetos no repositório sejam compartilhados. O arquivo é localizado normalmente no diretório bin padrão do delphi, onde devemos copiá-lo e coloca-lo em algum local compartilhado da rede. A Figura 4 mostra o novo caminho indicado para o arquivo delphi32.dro.

testai5.gif 

Figura 4. Informando o diretório da localização do arquivo delphi32.dro

Você poderá fazer um teste em uma nova máquina e configurar este diretório para visualizar os objetos adicionados no repositório pelo outro usuário. Isto é possível, pois os dois ambientes estão configurados para o mesmo diretório que contém o arquivo. Com isso, qualquer alteração no repositório será refletida em todos os ambientes configurados. È importante lembrar: ao adicionar ou excluir um objeto do repositório com o diretório configurado e posteriormente desfazer a configuração do novo diretório, o delphi se baseará no arquivo do diretório bin padrão e todas as alterações realizadas após ter sido configurado o novo caminho para o arquivo não serão visualizadas, pois foram trabalhadas em arquivos fisicamente diferentes.

Qualquer dúvida, crítica ou sugestões enviem um email e não deixem de visitar o meu blog.

 

Um grande abraço,