

| com exemplos em VB |
| Componente para deixar forms em Vb semelhantes às telas do winnamp |
| Componente para colocar sua aplicação VB no Systray |
| Componente para transformar sua aplicação VB em serviço |
| Ferramentas úteis para quem usa Olap Server |
| |

![]() |
||||||||
|
|
||||||||
Quer
saber mais?
Torne-se um MCP em Visual Basic
Faça um treinamento na Búfalo Informática
Criando AddIns para o VB
O recurso de criar AddIns para o VB é especialmente importante na criação de metodologias de desenvolvimento e padronização de código, além do próprio aumento de produtividade do programador.
Isso porque utilizando o Addin para gerar código o programador faz a geração de um código padronizado, seguindo metodologias pré-definidas.
A geração de um AddIn é baseada no uso da biblioteca Visual Basic Extensibility Model, que permite que manipulemos em código o próprio visual basic.
Além disso, temos um AddIn chamado Wizard Manager que facilita o processo de criação de um Wizard (um conjunto de telas, em sequencia, fazendo perguntas ao usuário), formato que normalmente é necessário aos AddIns.
Então vamos começar. Devemos abrir o VB e não criar projeto algum. O AddIn do Wizard Manager irá criar o projeto para nós. Quando você o acionar ele perguntará se você deseja criar o projeto, pode responder que sim.
O Wizard Manager já cria dois formulários, um deles chamado frmWizard, o formulário principal do Wizard. Além disso ele mostra uma janela na qual podemos gerenciar os steps que nosso Wizard terá.

Em nosso exemplo, Nosso Wizard terá apenas 2 steps :
NomeSub : Para
perguntar o nome da sub que nosso Wizard irá criar
Frases : Para perguntar as frases que nosso wizard mostrará
em MSGBOX. Será realmente um Wizard bem simples.
Assim sendo precisamos eliminar alguns steps existentes e renomear outros. Neste exemplo iremos eliminar os steps 3 e 4, mantendo os steps 1 e 2, que serão nossa área de trabalho, além da Introduction Screen e do Finished!
Clicando com o botão direito sobre os steps 1 e 2 podemos editar seus nomes para ficarem como planejado (NomeSub e Frases).
Conforme clicamos em um step na janela do Wizard Manager ele nos mostra o step em questão (tecnicamente, cada step é um frame que o wizard manager está gerenciando dentro do formulário. Para mostrar ou esconder os steps ele muda a posição dos frames).

Os steps estão inicialmente com os controles lockados. Se você desejar desfazer o lock de um dos steps deverá seleciona-lo e no menu format desativar a instrução lock controls. Isso é útil para, por exemplo, reduzir o tamanho dos labels já existentes no wizard.
No primeiro step vamos criar uma textbox chamada txtNomeSub.
Iremos inserir duas textbox : txtfrase1 e txtfrase2
Para alterarmos os labels do Wizard não podemos alterar seu conteúdo diretamente pelo caption. O Wizard manager já inseriu um código no Wizard para que seja feita a leitura de strings contidas em um arquivo de resource (.RES) que encontra-se associado ao Wizard. Assim sendo, para alterarmos os labels deveremos personalizar as strings contidas no arquivo de resource.
Montada toda a interface gráfica, vamos ao código. O References (Project->References) para o Microsoft Visual Basic 6 Extensibility já encontra-se feito, isso é característica do template criado pelo Wizard Manager.
Isso feito podemos partir para a programação do botão Finish. Este botão está num control array e já existe um código com select case separando a codificação de cada botão da tela. Temos então que localizar o case específico para o botão finish e, para não tornarmos este evento muito complexo, fazemos uma chamada de uma sub que fará a tarefa do finish, algo assim :
Case BTN_FINISH
'wizard creation code goes here
Call GerarCodigo
Unload Me
Então devemos fazer a sub gerarCodigo. Uma questão importante na hora de gerar o código é o fato de já termos uma variável chamada VBINST definida como sendo a instância atual do VB (o VB no qual estamos utilizando o Wizard).
Sub GerarCodigo()
Dim CM As CodeModule
Set CM = VBInst.ActiveCodePane.CodeModule
CM.AddFromString "Sub " & txtNomeSub.Text & "(i as integer)" & vbCrLf
CM.AddFromString Space(5) & "if i=1 then " & vbCrLf
CM.AddFromString Space(10) & "msgbox """ & txtFrase1.Text & """" & vbCrLf
CM.AddFromString Space(5) & "else" & vbCrLf
CM.AddFromString Space(10) & "msgbox """ & txtFrase2.Text & """" & vbCrLf
CM.AddFromString Space(5) & "end if"
end sub
Como pode observar, utilizando o AddFromString do objeto CodeModule podemos fazer a montagem da codificação conforme desejarmos. Temos acesso a todos os componentes do form, ou seja, as informações que o usuário passou para o wizard.
Para que a geração de código possa funcionar precisamos habilitar o botão finish. O botão finish vem desabilitado por default, para habilita-lo devemos novamente programar o select case. Desta vez vamos programar o botão next. No botão next vamos identificar se passamos do último step e, neste caso, habilitar o botão Finish. No botão back devemos também desativar o Finish. Veja :
Case BTN_BACK
'place special cases here to jump
'to alternate steps
nAltStep = mnCurStep - 1
SetStep nAltStep, DIR_BACK
cmdNav(4).Enabled = False
Case BTN_NEXT
'place special cases here to jump
'to alternate steps
nAltStep = mnCurStep + 1
SetStep nAltStep, DIR_NEXT
If nAltStep = 3 Then
cmdNav(4).Enabled = True
End If
Antes de testar nosso Wizard, vamos personalizar seu nome. Para fazer isso
basta alterar o nome do projeto e descrição em project->properties.
Vamos utilizar "GeradordeFrases". Feito isso devemos acessar também
o designer do Wizard Manager e alterar o Addin Display Name.
Podemos então compilar a DLL e testar em outro VB, pelo menu Add-Ins, adicionando nosso Wizard e testando-o.
Dennes Torres
MCSD,MCSE,MCDBA
� Búfalo Informática,
Treinamento e Consultoria -
Rua Álvaro Alvim, 37 Sala 920 - Cinelândia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail: contato@bufaloinfo.com.br