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:
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
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:
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:
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.
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,