FAQ   Pesquisar   Membros   Grupos   Registar   Perfil   Ligar e ver Mensagens Privadas   Entrar 

Como criar um Controle (ActiveX Control) para o VB6

 
Novo Tópico   Responder a Mensagem    Índice do Fórum IEEBrasil -> Visual Basic (Versão-base 6.0)
Ver mensagem anterior :: Ver mensagem seguinte  
Autor Mensagem
tiagocmelo
Site Admin


Registrado em: 11 Abr 2007
Mensagens: 147
Local/Origem: Olinda, PE - Brazil

MensagemColocada: Sáb Jun 30, 2007 3:27 pm    Assunto: Como criar um Controle (ActiveX Control) para o VB6 Responder com Citação

Como criar um Controle (ActiveX Control) para o VB6

Ricardo Alexandre é Matemático e Professor de Informática básica e avançada. Também desenvolve em Visual Basic.


Olá pessoal. Hoje iremos falar um pouco sobre ActiveX. Mas o que é isso?

ActiveX descreve um padrão de comunicação entre os objetos de uma aplicação. Assim como utilizamos os controles TextBox, List, Label e outros que vem no VB6, também podemos criar nossos próprios controles e vinculá-los aos componentes do VB6 de acordo com nossa necessidade.

Nesse artigo vamos criar um controle como exemplo, que denominei com o nome de Relógio não Vinculado. Basicamente iremos criar nosso próprio relógio para pegar inicialmente a hora do Windows e, a partir daí, começar a contar as horas sem ter mais nenhum vinculo com o relógio do Windows, se tornando um relógio independente do Sistema Operacional.

Escolhi esse projeto para também mostrar como criamos propriedades para um controle: Alterar a cor do fundo do relógio, alterar a cor da fonte da hora, ajustar largura e altura, utilizar a hora para outros controles (através do Caption do relógio). Então, vamos Começar!

- Abra o Visual Basic 6.0 e, na Janela Novo Projeto, escolha a opção: ActiveX Control > Abrir.



Note que apareceu um Form (Control) no estilo: None. É esse Form (Control) que utilizaremos para criar nosso controle.

Propriedades do Form(Control)

Name: Relógio_Não_Vinculado
Public: False ‘Para utilizar o controle sem precisar da ocx. (Não abrir pelo Navegador)
ToolBoxBitmap: Figura que vai aparecer identificando o controle quando ele estiver vinculado aos outros controles do VB6 (Formato: .bmp; .jpg; .gif) (Opcional)

- Insira um controle LABEL:
Propriedades:
Name: b_data
BorderStyle: 1 Fixer Single

- Insira um controle TIMER
Propriedades:
Name: Timer1
Interval: 1000

Veja como fica:



Agora, iremos criar o código de ação do controle e as propriedades do nosso novo controle.

Insira, no form (Control), o código abaixo:

‘Declaração para o relógio
Dim Time2 As Date ‘Hora do Sistema
‘Declarações para as propriedades
Dim L_Width As Long
Dim hora As String
Dim A_Height As Long
Dim nome As String

Private Sub Timer1_Timer()
On Error GoTo TRATAR
Timer1.Enabled = False ‘Para a execução do controle Timer1
If (Format$(Time2, "nn") & ":" & Format$(Time2, "hh") & ":" & Format$(Time2, "ss")) <> "00:00:00" Then
Time2 = DateAdd("s", 1, Time2) ‘Contar a hora já independente da hora do Windows.
b_data.Caption = Format$(Time2, "hh") & ":" & Format$(Time2, "nn") & ":" & Format$(Time2, "ss") ‘Mostra a hora já independente no controle b_data.caption do form (Control)
Timer1.Enabled = True ‘Ativa a execução do controle Timer1
Else
Timer1.Enabled = False ‘Para a execução do controle Timer1
Beep ‘Emite um som de fechamento
Beep ‘Emite um som de fechamento
End If

Exit Sub
TRATAR:
End Sub

Private Sub UserControl_Initialize()
Hours = Val(Format(Now, "hh")) ‘Hora
Minutes = Val(Format(Now, "nn")) ‘Minutos
Seconds = Val(Format(Now, "ss")) ‘Segundos
Time2 = TimeSerial(Hours, Minutes, Seconds) ‘Formato da variável
b_data.Caption = Format$(Time2, "hh") & ":" & Format$(Time2, "nn") & ":" & Format$(Time2, "ss") ‘Formato da hora a ser mostrada
End Sub

Private Sub UserControl_InitProperties()
L_Width = 1215 ‘Largura do relógio
A_Height = 285 ‘Altura do relógio
nome = "Ricardo Alexandre" ‘Variável com o nome do autor, para ser mostrado nas propriedades do controle
hora = b_data.Caption ‘Variável com a hora inicial para configurar o inicio para contar as horas, mostrado nas propriedades do controle
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
‘Configuração padrão das propriedades do controle (Leitura das propriedades)
b_data.BackColor = PropBag.ReadProperty("Fundo_Cor", &H8000000F) ‘Cor Face
b_data.Enabled = PropBag.ReadProperty("Travar", True)
Set b_data.Font = PropBag.ReadProperty("Fonte", Ambient.Font)
b_data.ForeColor = PropBag.ReadProperty("Fonte_Cor", &H8000000E) ‘Preto
L_Width = PropBag.ReadProperty("Largura", 1215)
A_Height = PropBag.ReadProperty("Altura", 285)
nome = PropBag.ReadProperty("Autor", "Ricardo Alexandre")
hora = PropBag.ReadProperty("Hora_Atual", "")
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
‘Configuração padrão das propriedades do controle (Escrevendo as propriedades)
Call PropBag.WriteProperty("Fundo_Cor", b_data.BackColor, &H8000000F)
Call PropBag.WriteProperty("Travar", b_data.Enabled, True)
Call PropBag.WriteProperty("Fonte", b_data.Font, Ambient.Font)
Call PropBag.WriteProperty("Fonte_Cor", b_data.ForeColor, &H8000000E)
Call PropBag.WriteProperty("Largura", L_Width, 1215)
Call PropBag.WriteProperty("Altura", A_Height, 285)
Call PropBag.WriteProperty("autor", nome, "Ricardo Alexandre")
Call PropBag.WriteProperty("Hora_Atual", hora, "")
End Sub

‘Estrutura para a criação das opções das propriedades do controle

‘‘Criar opção para ajustar a Cor do Fundo
Public Property Get Fundo_Cor() As OLE_COLOR
Fundo_Cor = b_data.BackColor
End Property

Public Property Let Fundo_Cor(ByVal New_Fundo As OLE_COLOR)
b_data.BackColor() = New_Fundo
PropertyChanged "Fundo_Cor"
End Property

‘‘Criar opção para ajustar false ou true
Public Property Get Travar() As Boolean
Travar = b_data.Enabled
End Property

Public Property Let Travar(ByVal New_Enabled As Boolean)
b_data.Enabled() = New_Enabled
PropertyChanged "Travar"
End Property

‘‘Criar opção para ajustar a Fonte
Public Property Get Fonte() As Font
Set Fonte = b_data.Font
End Property

Public Property Set Fonte(ByVal New_Font As Font)
Set b_data.Font = New_Font
PropertyChanged "Fonte"
End Property

‘‘Criar opção para ajustar a Cor da Fonte
Public Property Get Fonte_Cor() As OLE_COLOR
Fonte_Cor = b_data.ForeColor
End Property

Public Property Let Fonte_Cor(ByVal New_ForeColor As OLE_COLOR)
b_data.ForeColor() = New_ForeColor
PropertyChanged "Fonte_Cor"
End Property

‘Criar opção para ajustar a Largura
Public Property Get Largura() As Long
Largura = L_Width
b_data.Width = Largura
End Property

Public Property Let Largura(ByVal Novo_L_Width As Long)
L_Width = Novo_L_Width
PropertyChanged "Largura"
b_data.Width = Largura
Refresh
End Property

‘Criar opção para ajustar a Altura
Public Property Get Altura() As Long
Altura = A_Height
b_data.Height = Altura
End Property

Public Property Let Altura(ByVal Novo_A_Height As Long)
A_Height = Novo_A_Height
PropertyChanged "Altura"
b_data.Height = Altura
Refresh
End Property

‘Criar opção para o nome do autor
Public Property Get Autor() As String
Autor = "Ricardo Alexandre"
End Property

Public Property Let Autor(ByVal New_Autor As String)
nome = New_Autor
PropertyChanged "Autor"
End Property

‘Criar opção para mostrar a hora inicial que foi pega do Windows
Public Property Get Hora_Atual() As String
Hora_Atual = b_data.Caption
End Property

Public Property Let Hora_Atual(ByVal M_Hora_Atual As String)
hora = M_Hora_Atual
PropertyChanged "Hora_Atual"
End Property

Pronto! Salve o projeto dentro de qualquer pasta. Vamos utilizar como exemplo a pasta Meus Documentos. Feche o VB6! Veja que foi criado o controle identificado pelo ícone abaixo na pasta Meus Documentos.



Como inserir o nosso controle em qualquer aplicação

- Abra o Visual Basic 6.0 e, na Janela Novo Projeto (NEW), escolha a opção: Standard EXE > Abrir.



Depois de abrir o projeto, iremos Inserir nosso controle nessa aplicação:

Utilize o Menu: Project Opção: Add User Control



Na janela que foi aberta, clique em: Existing e localize o controle que foi criado (Como exemplo, salvo na pasta Meus Documentos) > Abrir



Pronto! O controle foi Inserido na Barra de controles do VB6

Agora adicione no form1 os seguintes controles:

1 CommandButton
1 Label
1 Relógio_Não_Vinculado (Esse foi a gente que fez!)

Assim como na figura:



No CommandButton atribua o código abaixo

Private Sub Command1_Click()
‘Testar as propriedades que foram criadas
Label1 = Relógio_Não_Vinculado1.Hora_Atual
Relógio_Não_Vinculado1.Fundo_Cor = vbWhite
Relógio_Não_Vinculado1.Fonte_Cor = vbRed
Relógio_Não_Vinculado1.Fonte = "Tahoma"
Relógio_Não_Vinculado1.Fonte.Size = "16"
Relógio_Não_Vinculado1.Largura = "2000"
Relógio_Não_Vinculado1.Altura = "400"
Form1.Caption = "Autor: " & Relógio_Não_Vinculado1.Autor
End Sub

Execute a aplicação e clique no botão para ver as propriedades criadas! Para ver a eficácia do nosso controle durante a execução do projeto, altere a hora do Windows. Beleza!

Obs.: Veja que a nossa hora continua atualizada em relação a do Windows, mas vale lembrar que isso ocorre só se o projeto estiver no processo de execução.

Espero que tenham gostado! Esse foi apenas um ponta pé para vocês se aprofundarem ainda mais nesse tipo de aplicação. Todos os Códigos foram testados, mas se ocorrer algum erro ou se ficou alguma dúvida, entre em contato.

Queria agradecer pelo o número de e-mails que venho recebendo. Fico muito honrado com isso!

Então é isso! Até a próxima com certeza!
Voltar ao topo
Ver o perfil de utilizadores Enviar Mensagem Privada Visitar a página na web do utilizador MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder a Mensagem    Índice do Fórum IEEBrasil -> Visual Basic (Versão-base 6.0) Todos os tempos são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Neste fórum, você Não pode colocar mensagens novas
Não pode responder a mensagens
Não pode editar as suas mensagens
Não pode remover as suas mensagens
Você Não pode votar neste fórum


© 2007-2008 Informe.com. Get Free Forum Hosting
Powered by phpBB © 2001, 2005 phpBB Group
 :: 
Translation by: (c) 2000-2006 Luiz Castelo-Branco, Todos os direitos reservados.
Theme xand created by spleen.