Professional Documents
Culture Documents
O que é ActiveX ?
Você agora tem a opção de criar projetos do tipo ActiveX EXE , ActiveX DLL ,
ActiveX Control , ActiveX Document DLL e ActiveX Document EXE . Nem sempre foi
assim...
Tudo começou com a tecnologia OLE ( leia o artigo: OLE Conceitos ) e evoluiu para
ActiveX . Assim , o termo para descrever a capacidade dos objetos se comunicar
uns com os outros é ActiveX , e , os documentos que usavam OLE são chamados
agora de documentos ActiveX. A tecnologia ActiveX é um padrão que rege a
interação e a comunicação entre os objetos de uma aplicação.
Enquanto que as VBXs eram DLLs que atuavam pela definição de suas
propriedades pela invocacão de seus métodos as OCXs trabalham com o
encapsulamento , como prega a OOP - Object Oriented Programming. Os VBXs
eram simplesmente arquivos que ficavam livres no seu disco rígido já as OCXs são
objetos que precisam ser registrados.
Os controles ActiveX
Assim como você usa um controle Combobox ou um Listbox você pode criar
controles personalizados para poder reutilizar em seus aplicativos. Os controles
ActiveX são basicamente módulos de classe com uma interface visual.
Já definimos nosso objetivo : criaremos uma classe para calcular os juros de uma
aplicação financeira. Primeiro devemos definir as variáveis envolvidas nesse
processo, então vejamos: Queremos calcular o valor resultante de uma aplicação
de um certo valor a uma taxa de juros especifica por um período de tempo
determinado. Logo podemos definir as seguintes variáveis:
cMontante - variável que indica o valor dos acumulado pela aplicação no período
Vamos agora gerar o código para nossa classe. Para melhor esclarecimentos sobre
classes leia o artigo - Criando classes no Visual Basic .
• Inicie um novo projeto e insira um módulo de classe para este projeto.
• A seguir insira o código abaixo no seu módulo de classe:
• Definindo as variáveis
Option Explicit
A variável visível somente pelo código dentro da classe : nJuros ( declarada como
Privada )
if i > 1 then
nJuros = i/100
else
nJuros = i
endif
End Property
• Código para enviar a propriedade Juros ao aplicativo
End Sub
Os valores exibidos pelas caixas de texto são os valores mínimos para uma
aplicação. Ela funciona assim : Voce fornece os valores nas caixas de texto e clica
no botão Calcula que usando a classe criada devolve o resultado exibindo-o na label
dentro do retângulo.
Voilá , nossa classe funciona !!!! (Também com essa complexidade de código ... )
objValorMontante.prazo = Val(txtprazo)
objValorMontante.Juros = Val(txtjuros)
objValorMontante.Valor = Val(txtvalor)
objValorMontante.Calcula
lblmontante = objValorMontante.Montante
End Sub
9. Insira a classe Montante.cls(criada no projeto anterior) no projeto do
controle ActiveX
10. Agora , vamos salvar tudo: Salve o projeto e o formulário padrão EXE com o
nome de Repositório ; Salve o projeto ActiveX com o nome de
ValorMontante ; salve o controle ActiveX com o nome de
ControleValorMontante e salve o grupo de projeto com o nome de
PrimeiroActiveX. Abaixo temos uma visão do seu projeto global:
Perceba que o arquivo do controle ActiveX possui a extensão CLT . Um arquivo CLT
é igual a um arquivo FRM; assim como um arquivo FRM armazena as definições de
um formulário um arquivo CLT armazena as definições para o controle. E , assim
como algumas vezes um arquivo FRM possui um arquivo FRX um arquivo CLT
também pode ter um arquivo CLX.
O que você esta esperando ??? Vamos usar essa OCX agora ! . Ative o seu
formulário padrão ( form1) e clique no controle inserindo-o no formulário como
abaixo:
Pressione F5 para executar o projeto e a seguir clique no botão Calcular. Veja o
resultado abaixo:
Vamos agora compilar o seu controle ActiveX. Observe a figura abaixo , onde temos
Grupo de Projeto para nosso exemplo:
Fig 2.0 - Compilando seu controle
Fig 1.0 - A janela do Grupo de Projeto
ActiveX
Pronto ! Serviço acabado . Falta agora registrar a sua OCX. Para registrar sua OCX
você pode usar o arquivo regsvr32.exe que vem com o Windows usando a
seguinte sintaxe:
regsvr32 ValorMontante.ocx
Se o registro foi feito com sucesso você verá uma mensagem com a janela abaixo:
Agora vamos ver se a sua OCX já pode ser usada por qualquer projeto no Visual
Basic. Inicie um novo projeto e selecione a opção Project -> Components... , na
janela de diálogo Components procure pela sua ocx - Valor_Montante. Veja
abaixo a janela:
Para usar a sua OCX basta selecionar a opção - Controle Valor Montante ; o
controle deverá aparecer na caixa de ferramentas pronto para ser inserido em
qualquer projeto.
Segurança ActiveX
Com os controles ActiveX a coisa muda de figura . Nada impede que um controle
transferido para o seu sistema venha a causar danos ao seu computador. Talvez
possa parecer um exagero mas cuidado com os controles Activex que você
transfere para o seu computador.
Bem , mas o que podemos fazer para amenizar tal problema ? Vejamos:
Para incorporar um controle ActiveX dentro de uma página Web, precisamos usar o
conjunto de tags <OBJECT> ... </OBJECT>. O que vai identificar o objeto
ActiveX é o seu CLASSID alfanumérico - um nome longo e dificílimo de memorizar
.
A seguir temos um exemplo do código fonte gerado para o controle Label do VB.
<OBJECT
ID="Label Object"
CLASSID="CLSID:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
WIDTH=80
HEIGHT=30>
</OBJECT>
Os Controles ActiveX
Após criado o seu Controle ActiveX pode ser usado em outros projetos VB , e, você
pode até criar um controle para uso comercial como um Grid ou qualquer controle
que você crie para suprir uma lacuna que exista no mercado.
Criar um controle ActiveX não é a mesma coisa que criar uma aplicação padrão no
Visual Basic ; os passos envolvidos na criação de um controle podem ser
enumerados assim :
1. Defina o objetivo : O que o seu controle vai fazer ? Para que ele vai servir ?
2. Defina a interface do seu controle
3. Crie o código para as propriedades , métodos e eventos do seu controle
4. Teste o seu controle antes de usá-lo pra valer.
5. Compile o seu controle criando uma OCX fazendo os testes para versão
compilada.
6. Incorpore o seu controle a sua aplicação e monte os discos de distribuição
da mesma.
1.0 - Os controles do VB usados para criar nosso novo 2.0 - A aparência do Nosso controle
Controle Activex Activex
Selecione a opção Standard EXE . O projeto Standard EXE será o container para
nosso controle ActiveX.
6. Como nossa interface gráfica já esta pronta falta escrever o código para
fazer funcionar o Controle. O comportamento que queremos obter é o
seguinte: quando o usuário clicar nas setas do controle o valor da caixa de
texto seja incrementado ou decrementado. Para que isto ocorra devemos
inserir código no evento Change da Barra de rolagem vertical (Vertical
Scrollbar). Clique duas vezes sobre o controle VScrollBar e na janela de
código insira a seguinte linha como na figura: Obs: Podemos definir as
propriedades Max e Min do controle VScrollBar definindo qual o valor
máximo e o mínimo. Vamos definir a propriedade Text da caixa de text com
o valor 1 . Este será o valor inicial do controle.
7. Feche a janela de código e antes de fechar a janela do formulário do nosso
controle vamos dar um nome bem sugestivo a ele... Que tal : SuperSpin...
Veja na figura abaixo no novo nome da caixa de propriedades do controle.
Pronto !!! agora só falta compilar e criar a OCX e o seu controle SuperSpin esta
pronto para detonar... Voce pode usá-lo inclusive no Internet Explorer ( versão 4.0
ou superior...).
Para alterar o ícone do seu controle na caixa de ferramentas ( afinal se você gerar
mais de um controle poderá ficar confuso pois o ícone padrão é sempre o mesmo)
basta você alterar o valor da propriedade ToolboxBitmap do seu controle
atribuindo a ele um ícone válido. Os ícones da caixa de ferramentas tem um
tamanho de 16 por 15 pixels. Veja abaixo:
Alterando a propriedade ToolboxBitmap O novo ícone do seu controle
Para iniciar nosso trabalho devemos incluir o Assistente - Activex Control Interface
Wizard - no ambiente de desenvolvimento do Visual Basic. Então façamos:
Como iremos criar nossos próprios membros vamos clicar no botão Next > .
Lembra que no inicio dissemos que o Assistente não fazia o serviço completo ? .
Pois é , agora temos que codificar a propriedade Sobre. Basta localizar a função
VM_Sobre() e inserir o código como abaixo:
O projeto com o botão de comando Sobre Executando o projeto e clicando o botão Sobre