Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de Usuários
»Células Acadêmicas«
intcontpiada : 118
Evoluindo
Você já está cadastrado e participa do grupo de usuários de sua cidade ? Se não, comente o porque.
 
 
Faça um pequeno teste com 10 questões de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programação com nosso treinamento on-line de lógica de programação
.:.
Veja nosso calendário de treinamentos
Gostou da Página?
Então

para um amigo!
 







Pesquisa personalizada
Pesquisar Dicas:

 






Quer saber mais?
Torne-se um MCP em Visual Basic
Faça um treinamento na Búfalo Informática

fcil criar componentes

Por: Dennes Trres de Oliveira - Dennes@infolink.com.br


A criao de componentes ActiveX  um recurso extremamente til pois permite que tarefas
rotineiras e cdigos que so sempre usados em um sistema sejam criados uma nica vez e
utilizados em diversos sistemas.

Alm disso, componentes ActiveX podem ser utilizados na Web, dentro de pginas HTML.

Primeiramente, precisamos criar um projeto de um componente ActiveX. Ao entrar no Vb ele j
pergunta qual projeto desejamos criar, basta selecionar ActiveX Component.

O nosso componente ser um relgio a ser utilizado tanto em projetos VB como em pginas na Web.

A primeira coisa que vemos no projeto  a rea de criao do componente. Ela guarda certa
semelhanas com um formulrio, mas no possui barra de ttulo, por exemplo. Esta rea  o
espao que o componente ir ocupar quando estiver posicionado dentro de um form.

Podemos ento inserir diversos componentes dentro do nosso componente. O nosso componente
ficar sendo uma juno de vrios componentes j existentes. Poderamos unir labels, botes,
text box, para formar um nico componente.

No nosso caso, necessitaremos de um label e um timer. O label ser posicionado no canto
superior esquerdo do componente (isso  necessrio para o nosso exemplo). O timer pode ser
posicionado em qualquer lugar.

Precisaremos setar a propriedade AutoSize do Label para True. Este label ser o responsvel por
exibir a hora do nosso relgio. O AutoSize far com que o tamanho do label se ajuste  largura
da hora. Vamos chamar o Label de LBLCLOCK.

Vamos dar um nome ao componente que estamos criando. Clique na rea de criao do componente e
na janela de propriedades d o nome de Clock.

Desejamos que o componente fique do exato tamanho do mostrador de hora, no deve haver espao
vazio. Para conseguirmos isso devemos programar o evento Resize do UserControl. Utilize um
duplo clique na rea de criao do componente e em seguida altere o evento para Resize.

O evento Resize do UserControl pode ser utilizado com uma entre duas finalidades:

A)	Quando desejamos que o usurio possa alterar o tamanho do nosso componente, utilizamos o
Resize para alterar o tamanho e a posio dos componentes internos ao nosso.

B)	Quando desejamos que o usurio no possa alterar o tamanho do nosso componente, 
utilizamos o Resize para atribuir um valor fixo ao tamanho do nosso componente, fazendo
com que a alterao do usurio seja ignorada.

No Resize deveremos atribuir ao UserControl a largura e a altura do label. O cdigo do Resize
ficar ento da seguinte forma:

Private Sub UserControl_Resize()
	UserControl.Width = lblclock.Width
	UserControl.Height = lblclock.Height
End Sub
	
Importante: Observe que mesmo aps termos trocado o nome do UserControl ele continua a ser
referido no cdigo como UserControl.

Aps isso precisaremos tambm garantir que quando o Label mudar de tamanho o UserControl tambm
mudar. Isso dever acontecer em especial quando o componente for inserido no form, na primeira
exibio de hora que ocorrer no Label.

Para tanto vamos programar o evento Change do Label. O evento Change do Label ocorre sempre que
o caption do Label  alterado. No evento Change poderemos nos limitar a chamar a Sub do evento
Resize para fazer o trabalho todo por ns. Assim sendo, o cdigo ficar assim:

Private Sub lblclock_Change()
    UserControl_Resize
End Sub

Finalmente, devemos agora programar o objetivo final do nosso componente: Exibir as horas.
Para tanto devemos configurar o componente Timer. Vamos atribuir 1000  propriedade Interval do
componente Timer. Isso far com que a cada 1 segundo (1000 milisegundos) o evento OnTimer do
componente Timer ocorra.

Vamos ento programar o evento OnTimer do componente Timer. Neste evento a nica coisa que
precisaremos fazer  exibir as horas. O cdigo ficar da seguinte forma:

Private Sub Timer1_Timer()
   lblclock.Caption = Time
End Sub

Precisamos ento testar nosso componente. Para testa-lo precisaremos de um projeto, portanto
devemos adicionar um projeto no Vb. Para isso utilizamos o comando File->Add Project. Observe
que no estou utilizando New Project, mas sim Add Project. Isso ir criar um novo projeto sem
fechar o projeto do componente que estamos criando. Desta forma estaremos trabalhando ao mesmo
tempo com o projeto do componente e o projeto criado para testar o componente. Isso forma o que
o VB chama de Project Group. O projeto que adicionaremos dever ser um projeto standard.

Aps utilizar esta instruo voc ter a sua frente o form1 do projeto Standard, mas voc
observar que, apesar do nosso novo componente aparecer na paleta de componentes, ele aparece
desabilitado.

Isso acontece porque a janela de criao do componente est aberta, apesar de estar por trs de
outras janelas. Para solucionar isso voc dever utilizar o menu Window, selecionar e fechar
todas as janelas relativas ao componente que estiverem aparecendo no menu Window.

Aps isso, voc ver o nosso componente ativo na paleta de componentes. Poder ento
adiciona-lo ao form e ver o mostrador de hora exibindo a hora atual.

Tente alterar o tamanho do componente e voc ver que o tamanho no mudar, devido ao cdigo
que utilizamos no evento Resize do UserControl.

Vamos agora melhorar um pouco nosso componente. Voc deve ter observado que o componente possui
algumas propriedades das quais no necessita, tal como TabStop e TabIndex. Para retirar essas
propriedades devemos manipular as propriedades do componente.

Para isso abra a janela de criao do componente e procure pela propriedade CanGetFocus. Essa
propriedade determina se o componente poder ou no receber o foco dentro de um formulrio. Se
for setada para False, as propriedades TabStop e TabIndex automaticamente desaparecem, por
serem desnecessrias.

Teste, mas no esquea de fechar a janela de criao do componente ao voltar para o form1.

Outra alterao interessante que poderemos fazer neste componente  definir um cone para ele.
Para isso precisaremos utilizar a propriedade do componente chamada ToolBoxBitmap. Basta
atribuir uma imagem a esta propriedade e estar feito : Nosso componente ganhar um cone. Na
falta de um cone melhor selecionei o cone de um calendrio.

At este ponto ainda no executamos o projeto, apenas vimos o funcionamento do componente em
tempo de Design. Como temos um Project Group e no um projeto nico devemos fazer mais um passo
antes de podermos executar: Determinar qual o projeto que ser executado primeiro.


O projeto pelo qual desejamos iniciar a execuo  o projeto Standard. Desta forma devemos, na
janela do Project Explorer, marcar o projeto Standard como sendo o projeto de Start Up. Para
tanto clique com o boto direito sobre o projeto Standard e selecione a opo Set as Start Up.
Voc observar que o projeto do componente, que estava em negrito, no mais estar, enquanto
que o projeto Standard, de teste do componente, ficar em negrito por ser o projeto Start Up.
Voc poder ento executar o projeto.

Na hora de salvar o projeto voc observar que o comando Save Project do menu File foi alterado
para Save Project Group. Isso porque temos um gupo de projetos. Assim sendo, alm dos arquivos
normais dos 2 projetos ser salvo um arquivo a mais com a extenso .VBG. Este arquivo (VBG)
permitir que voc abra todo o grupo de projetos de uma vez s. Abrindo o VBG todos os projetos
pertencentes a este grupo de projeto sero abertos.

Aps salvar todo o grupo de projetos, vamos ento compilar o nosso componente. Isso  feito da
mesma forma que geramos um executvel. Selecionando o projeto do componente na janela do
Project Explorer e abrindo o menu File encontraremos a instruo Make ProjClock .OCX (o nome do
projeto pode variar,  o nome que voc deu a  ele).

Logo abaixo dessa instruo Make existe um segundo Make : Make Project Group. O 1o  Make ir
compilar apenas o projeto selecionado. Como o projeto selecionado  o projeto de um .OCX ele de
imediato identificou que o arquivo resultante ser um .OCX. J o 2o Make pode ser utilizado
para compilar todos os projetos contidos no grupo. No nosso exemplo, seria criado o .OCX do
Clock e um executvel referente ao projeto de teste do Clock.

Aps tudo isso, vamos ento utilizar o nosso componente em um novo projeto. Para isso, basta
utilizar o comando New Project. Todo o Project Group ser fechado e voc ter um novo projeto
Standard para testar o componente.

O componente, como voc poder observar, no se encontra mais na paleta de componentes do VB.
Precisaremos adiciona-lo  paleta de componentes. Para isso utilizaremos a instruo Project
->Components.

Voc encontrar na lista de componentes o nome do projeto do componente Clock. Esse nome foi
adicionado ao Registry do equipamento quando o componente foi compilado. Caso estivesse
utilizando o componente em outro micro, bastaria utilizar o boto Browse e apontar o arquivo do
componente.

Aps isso o componente aparecer na paleta de componentes e poder novamente ser utilizado nos
seus projetos.


� 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