Utilizando funções e classes criadas através do Visual Basic 2005 no E3.

1) Introdução

Visando otimizar o reuso de código existente e a integração com bibliotecas já desenvolvidas pelo integrador, o Elipse E3 permite a utilização de bibliotecas criadas em Visual Basic ou em ferramentas externas, portadas utilizando a tecnologia COM de maneira simples e acessível a qualquer programador VB. No exemplo aqui descrito, utilizaremos o Visual Studio 2005, mas esse procedimento pode ser feito também com classes e funções desenvolvidas em outras ferramentas VB da Microsoft, mais antigas, sempre utilizando a tecnologia COM.

O código-fonte utilizado neste artigo pode ser encontrado nos anexos deste documento.

2) Criando bibliotecas compatíveis com o E3

Para utilizar bibliotecas já existentes, é necessário fazer pequenas alterações nestas de maneira a transformá-las em bibliotecas COM. Uma biblioteca COM difere de uma biblioteca normal em dois pontos importantes: elas precisam ser registradas no sistema em que estão sendo chamadas e precisam implementar um determinado conjunto de funções de acesso padrão. Felizmente, isso tudo é feito automaticamente no Visual Studio 2005, e de maneira simples também nas versões anteriores dessa ferramenta. Para realizar esse procedimento, basta adicionar alguns parâmetros e cabeçalhos ao projeto.

Para criar uma biblioteca COM no Visual Studio, de maneira simples e utilizando Visual Basic, indicamos o artigo Walkthrough: creating COM objects with Visual Basic 2005, disponível no site MSDN. Este documento da Microsoft explica como criar um projeto compatível com a interface COM e como fazer com que suas classes gerem objetos COM.

O restante deste artigo considera que as bibliotecas já foram adaptadas ao modelo COM, e procedimento análogo pode ser utilizado em bibliotecas COM criadas em outras linguagens de programação.

Para registrar bibliotecas COM, existem duas maneiras, cada uma utilizada para um caso diferente. No exemplo fornecido neste artigo, a biblioteca COM é gerada utilizando o .NET Framework, e contém extensões .NET, por isso ela deve ser registrada de maneira diferente das bibliotecas COM convencionais. Deve ser registrada utilizando o aplicativo regasm, incluído no .NET Framework 2.0, fornecido pela Microsoft, e deve ser armazenada no mesmo diretório em que estiver o executável que a acessará, por exemplo, C:\Program Files\Elipse E3\Bin; ou ser armazenada na GAC (Global Assembly Cache), mas essa segunda opção envolve assinar a biblioteca com um nome forte. Para usuários que forem desenvolver objetos COM sem extensões .NET, deve-se registrar esses objetos utilizando a ferramenta regsvr32, fornecida junto com o Microsoft Windows. Veja mais informações sobre a utilização do regasm em um artigo da Microsoft denominado Assembly Registration Tool, na seção Referências.

3) Inserindo objetos COM no E3

Para utilizar um objeto COM no E3, basta criar um tag interno, associá-lo com uma biblioteca COM registrada no sistema e acessar essa biblioteca através desse tag. Veremos agora, em um exemplo passo a passo, como essa associação pode ser feita de maneira simples e rápida.

Antes de realizar os passos a seguir, certifique-se que a biblioteca COM foi registrada.

1) Abra o Studio e crie uma nova aplicação.
2) No Organizer, clique com o botão direito do mouse em Dados, selecione InserirPanel, e adicione um tag interno.

 


Figura 1: Inserindo um tag interno

3) Abra esse tag interno, selecione a aba de Scripts, e, no evento OnStartRunning(), insira o script de associação.

 


Figura 2: Selecionando a aba Scripts

 


Figura 3: Script da associação com o objeto COM

Esse script associará o tag a uma classe da biblioteca COM, criando um objeto. Neste caso, temos uma biblioteca chamada ComLibrary.dll, contendo a classe VBClass, que é associada ao tag.

Abaixo, temos o código do script:

Sub TagInterno1_OnStartRunning()
Value = CreateObject("ComLibrary.VBClass")
End Sub

Dessa maneira, temos a associação pronta.

4) Acessando o objeto COM

Depois de inserido o objeto, precisamos de meios para acessar os seus métodos. Este exemplo mostra como isso é possível.

Consideraremos, para este exemplo, que temos na classe ComLibrary.VBClass um método AddValues(Integer Valor1, Integer Valor2), que recebe dois valores e retorna a soma deles.

Adicionaremos também uma interface gráfica para testar a associação:

1) Crie na tela inicial uma interface gráfica para a inserção de dois valores. A sugestão é utilizar Labels para indicar onde entram os valores, TextBoxes para inserir os valores de entrada, e um botão que realizará a soma das entradas.

 


Figura 4: Interface gráfica para usar objetos COM

2) Dê um clique duplo sobre o botão que realiza a soma e edite o script desse botão para o evento Click(). Adicione o script que executa o método da soma do objeto COM e mostra o resultado em uma caixa de diálogo.

 


Figura 5: Script da associação com objeto COM

O código utilizado:

Sub CommandButton1_Click()
set comObj = Application.GetObject("Dados.TagInterno1").Value
MsgBox comObj.AddValues(Parent.Item("TextBox1").Value, Parent.Item("TextBox2").Value)
End Sub

Analisando o código, temos uma associação do TagInterno1 a uma variável local. Como esse tag aponta para o objeto COM, temos que a variável comObj representa esse objeto diretamente e podemos invocar seus métodos, como ocorre na linha seguinte, onde os valores contidos nos dois campos de entrada são somados e o resultado atribuído ao campo de saída.

Na figura seguinte mostramos o resultado de uma execução deste projeto, mostrando os campos de entrada e a MessageBox de saída.

 


Figura 6: Execução deste exemplo

5) Considerações Finais

A utilização de bibliotecas externas no E3 permite uma maior personalização do supervisório em desenvolvimento, possibilitando um controle sobre o processo que melhor se adapte ao desenvolvimento. Outro ponto importante é o encapsulamento de classes e funções em bibliotecas, possibilitando a abstração de procedimentos para o integrador e a reutilização destas bibliotecas.

Tratando-se de bibliotecas COM, isso representa uma grande vantagem em termos de programação, pois torna compatível com o E3 uma tecnologia amplamente utilizada e recomendada pela Microsoft, permitindo o desenvolvimento de bibliotecas separadas do supervisório, mas amplamente compatíveis. Essa possível separação de componentes facilita a organização de projetos mais complexos, pois permite dividir em módulos as funcionalidades implementadas.

Com esse modelo, podemos ter servidores COM servindo o supervisório e qualquer outro programa que necessite ou deseje interagir com esses servidores, podendo ter sua manutenção e desenvolvimento em separado.

Pode-se concluir que o procedimento aparentemente simples deste artigo representa uma ferramenta de programação muito útil no desenvolvimento de projetos modulares utilizando o E3.

6) Referências

Microsoft Corporation. Assembly Registration Tool (Regasm.exe).
Disponível em http://msdn2.microsoft.com/en-us/library/tzat5yw6(VS.80).aspx.

Microsoft Corporation. Walkthrough: creating COM objects with Visual Basic 2005.
Disponível em http://msdn2.microsoft.com/en-us/library/x66s8zcd(VS.80).aspx.

Anexos:

E3-Project
ComLibrary

Este artigo foi útil? Was this post helpful?
Yes0
No0

Leave a Reply

Your email address will not be published.Required fields are marked *