Criando um ADD-INS no Visual Basic
A esta altura você já deve estar familiarizado com o ambiente de desenvolvimento do Visual Basic - IDE ; então localize no Menu do VB a opção Add-Ins. Localizou ? . Selecione a opção Add-In Manager . Na janela Add-In Manager , da relação de Add-Ins , selecione VB 6 API Viewer e marque as caixas Loaded/Unloaded e Load on Startup. Pronto ! Você acabou de configurar o carregamento de um Add-Ins no menu Add-Ins. Se clicar no menu Add-Ins novamente o Add-In selecionado estará disponível. Veja abaixo:
Figura 1.0 - Add-Ins disponívels | Figura 2.0 - Add-In Selecionado |
Bem , mas o que é um Add-In ? Um Add-In é um controle ActiveX que trabalha diretamente dentro do ambiente de desenvolvimento do Visual Basic interagindo com projetos , menus , janelas , etc... . Eles realizam tarefas pré-determinadas e introduzem novas funcionalidades ao ambiente de programação do Visual Basic que tornam a "árdua tarefa" de programar mais fácil...
Veja a relação de Add-Ins disponíveis na figura 1.0 . A sua pode ser diferente mas o que importa é que você perceba que Add-Ins são como programas que tem o objetivo de ajudar o usuário na sua tarefa de criar projetos no ambiente VB. Creio que o mais conhecido Add-In seja o Visual Data Manager.
Agora vêm o mais importante : Você sabia que pode criar os seus próprios Add-Ins ? Não acredita ? Pois neste artigo vamos mostrar como você pode criar o seu Add-In.
Conceitos Básicos
Se você não sabe por onde começar que tal abrir o Visual Basic e criar um novo projeto . Na janela New Project selecione o ícone Addin.
Veja na figura abaixo que o VB já deu o pontapé inicial e gerou um projeto com um formulário(frmAddin) e um Descritor.(Connect)
Agora vamos dar uma olhada nas referências que o VB usou. No menu Project|References abra a janela References e note que o VB incluiu as seguintes referências:(Veja figura a seguir)
Antes de darmos uma olhada no código gerado vamos definir alguns termos que serão necessários.
A possibilidade de poder criar um Add-in é uma grande jogada a Microsoft . Com isto ela abre as portas para que você estenda as capacidades do ambiente de desenvolvimento. Estender é a palavra chave e é aqui que eu vou falar do EOM - Extensibility Object Model . O ambiente IDE fornece uma interface conhecida como EOM que um conjunto de interfaces que server para personalizar o ambiente de desenvolvimento. Então basicamente você pega o IDE e cria uma extensão a qual é chamada Add-In.
O EOM expõe muitos objetos e é um tanto complexa de digerir portanto vamos nos ater ao necessário para criar Add-ins. Seis objetos compõe o modelo EOM :
Core Objects - Este pacote é o pacote principal usado na criação de Add-Ins ele possui os seguintes objetos:
O VBE é o objeto Raiz ( Root Object) no VB e possui objetos e coleções. As coleções do objeto VBE são :
VBPROJECTS
A coleção VBPROJECTS permite acessar as propriedades do VB . Abaixo temos alguns métodos e propriedades para esta coleção:
Já deu para perceber que você deve saber o que são coleções. Coleções são usadas para fazer referência a um grupo de objetos relacionados sendo que uma coleção pode conter outras coleções. Para o caso acima mostramos a seguir a hierarquia das coleções superiores.
As coleções acima possuem objetos e outras coleções que por suaves possuem propriedades e métodos que vamos utilizar. O objeto VBE contém a coleção de projetos e cada projeto pode conter: formulários , módulos , classes e referências. Cada um destes componentes possui um módulo de código associado.
Abaixo mostramos alguns métodos disponíveis para tratamento de código:
Nome | Descrição |
CountOfLines | Retorna o número de linhas de um módulo de código |
CountOfVisibleLines | Retorna o número de linhas vísiveis no painel código |
DeleteLines | Exclui uma linha ou conjunto de linhas em um módulo |
Find | Procura no módulo por uma expressão |
GetSelection | Retorna a seleção no módulo ativo |
InsertLines | Inclui linha(s) no local definido num bloco de código |
Lines | Retorna o texto de uma linha do módulo de código |
ProcBodyLine | Retorna a primeira linha da procedure do módulo |
ProcOfLine | Retorna o nome da procedure em uma linha de código |
ReplaceLine | Altera uma linha de código do módulo |
Exemplos de utilização:
a-) String = vbCode.Lines(3,5)
Irá retornar o texto de 5 linhas de códigos da variável objeto vbCode, iniciando na linha número 3.
b-) vbCode.InsertLines 1, "'Isto é um comentário !"
Inclui um comentário na seção General Declarations de um componente.c-) vbCode.DeleteLines 1
Exclui a linha inserida no exemplo anterior
O primeiro Add-In a gente nunca esquece...
Vamos direto ao que interessa : Criar nosso primeiro Add-In. Vamos criar um Add-In simples que irá contar as linhas de código de um determinado componente de um projeto VB. O nome do nosso add-in será MeuAddin e a versão do VB usada é a 6.0. Para isto vamos contar com uma pequena ajuda do VB.
1-) Inicie um novo projeto no Visual Basic e Na janela New Project selecione o ícone Addin. O VB já irá gerar um projeto com um formulário e um descritor como abaixo:
2-) Altere o nome do projeto para MeuAddin e exclua os botões de comando OK e Cancel. Agora insira três caixas de texto - txtprojeto e txtcomponente e txtnumerodelinhas, três labels e dois botôes de comando: cmdcontarLinhas e cmdPronto. Veja figura abaixo:
3-) O código inserido pelo VB no Descritor será usado para se conectar e desconectar do ambiente de desenvolvimento . Vamos fazer somente uma pequena alteração neste código. Exiba o código do descritor e procure pelo procedimento:
Private Sub AddinInstance_OnConnection()
Encontre a linha de código :
Set mcbMenuCommandBar = AddToAddInCommandBar("MyAddin")
e substitua o nome "MyAddin" pelo nome dado ao seu projeto. No nosso caso ficaria assim:
Set mcbMenuCommandBar = AddToAddInCommandBar("MeuAddin")
4-) Inclua o código abaixo na seção General Declarations do formulário frmAddin:
Option Explicit
Public VBInstance As VBIDE.VBE
Public Connect As Connect
5-) Agora insira o código abaixo no evento Click do botão - cmdcontarlinhas :
Private Sub cmdcontarlinhas_Click() Dim strVBProjeto As String Dim strVBComponente As String Dim objVBComponent As VBComponent 'controles do formulário strVBProjeto = txtprojeto.Text strVBComponente = txtcomponente.Text 'Define objVBComponent para o componente do programa informado Set objVBComponent = VBInstance.VBProjects.Item(strVBProjeto).VBComponents.Item(strVBComponente) 'Atribui o numero de linhas usando o método - countoflines - do componente objVBComponent txtnumerodelinhas.Text = Str(objVBComponent.CodeModule.CountOfLines) End Sub |
6-) Agora o código associado ao evento Click do botão - cmdPronto.
Private Sub cmdpronto_Click() 'esconde a janela do add-in Connect.Hide End Sub |
Como funciona !:
Todo o serviço é feito quando o usuário clicar no botão - contar Linhas ; ao fazer isto os nomes do projeto e do componente informados pelo usuário nas caixas de texto será atribuido ao objeto objVBComponent :
Set objVBComponent = VBInstance.VBProjects.Item(strVBProjeto).VBComponents.Item(strVBComponente)
Note que
primeiro referenciamos o objeto VBInstance e então
a coleção VBProjects é acessada através do
método item usando o nome do projeto atribuído a variável strVBProjeto
e o componente atribuído a variável strVBComponente.
A linha de código que efetivamente conta as linhas é a seguinte:
txtNumerodeLinhas.Text = Str(objVBComponente.CodeModule.CountOfLines)
Com ela
acessamos a propriedade CountOfLines de CodeModule
do objeto objVBComponent que irá contar o número
de linhas e atribuir o resultado a caixa de texto txtNumerodelinhas.text
Bem , estamos quase acabando . Eu disse quase.... Salve o projeto e compile-o usando as opções File|Compile MeuAddin.dll no mesmo diretório do VB . Os add-Ins podem ser compilados como um ActiveX EXE ou como um ActiveX DLL.
Agora , antes de poder rodar o nosso Add-In , temos que alterar o arquivo VBADDIN.INI que esta no diretório Windows . Inclua a seguinte linha de código no arquivo e salve-o novamente no mesmo diretório.
MeuAddin.Connect =0
|
Pronto , agora acabamos. Vamos usar o nosso Add-Ins ???? Para isto siga o roteiro a seguir:
Voilá... O formulário form1 do projeto Project1 contém 43 linhas de código .. Uau !!! Imagine as possibilidades !!! . Agora eu passo a bola para você...
José Carlos Macoratti