Ir para conteúdo
Fórum Script Brasil
  • 0

Listar Event


Anderson Fernandes

Pergunta

Boa tarde pessoal! beleza?

Em um componente é só criar criar um evento

Public Event Teste(Valor As Integer)
e depois executar dentro de uma function, Sub ou Property (...)
RaiseEvent Teste(1)
então quando eu dou um duplo click no componemte aparece o evento
Private Sub NomeDoComponente_Teste(Valor As Integer)
        Msgbox Valor
End Sub
MAS, tambem é possivel se criar e executar eventos em classes mas como eu faço para usar o evento executado? tipo:
Private Sub Modulo1_Teste(Valor As Integer)

Sei q é possivel pois já vi este Script, mas não me recordo aonde.

eu me lembro q tinha q tinha q declarar o evento do modulo aonde eu fosse usalo, mas não me lembro exatamente como.

Agradeço se algem poder ajudar!

Editado por Anderson Fernandes
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Bom... eu fiz um teste e não deu muito certo!

Dentro da "Class1" eu coloquei este script

Option Explicit

Public Event eTeste(sValor As String)

Public Sub fTeste(ByVal sParametro As String)
    RaiseEvent eTeste("*" & sParametro & "*")
End Sub
E no "Form1" este script
Option Explicit

Private cTeste As New Class1
Private WithEvents EventoTeste As Class1

Private Sub Command1_Click()
    cTeste.fTeste "Anderson"
End Sub

Private Sub EventoTeste_eTeste(sValor As String)
    Me.Text1 = sValor
End Sub

Quando eu coloquei "Private WithEvents EventoTeste As Class1" os eventos são listados porem não são executados.

neste exemplo quando eu desse um clique no Command1 era pra me aparecer ma Text1 o texto "*Anderson*", mas não aparece nada.

Eu esqueci de alguma coisa????

Editado por Anderson Fernandes
Link para o comentário
Compartilhar em outros sites

  • 0

olha q você declarou duas classes e ta usando as duas cada uma de uma vez.

o codigo do Form1 deveria ser esse:

Option Explicit

Private cTeste As New Class1
Private WithEvents EventoTeste As Class1

Private Sub Command1_Click()
    EventoTeste.fTeste "Anderson"
End Sub

Private Sub EventoTeste_eTeste(sValor As String)
    Me.Text1 = sValor
End Sub

Private Sub Form_Load()
    Set EventoTeste = New Class1
End Sub[/code]

mas eu realmente não entendo. porque por evento nas classes se pode-se fazer tudo isso de forma bem mais simples só usando subs??

Link para o comentário
Compartilhar em outros sites

  • 0
olha q você declarou duas classes e ta usando as duas cada uma de uma vez.

Foi o que eu vi de errado também.

mas eu realmente não entendo. porque por evento nas classes se pode-se fazer tudo isso de forma bem mais simples só usando subs??

Como no VB6 não existe herança, métodos virtuais, sobrecarga ou delegates, eventos são formas de personalizar determinadas ações fora da classe.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Como no VB6 não existe herança, métodos virtuais, sobrecarga ou delegates, eventos são formas de personalizar determinadas ações fora da classe.

hum... faz sentido... mas o q seria um "método virtual"??

É um método que *pode* ser sobrescrito em uma classe filha. Ah, e eu esqueci de mencionar também os métodos abstratos (que *devem* ser sobrescritos).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
É um método que *pode* ser sobrescrito em uma classe filha. Ah, e eu esqueci de mencionar também os métodos abstratos (que *devem* ser sobrescritos).

hum entendi...

na verdade era pra eu saber tdo isso, nem devia tar perguntando.

mas eu olhei aqui e conferi, no c#, os metodos q a gente faz override tem q ser declarados como virtual ou abstract.

apesar de eu saber q da pra fazer override e saber q da pra criar classes abstratas, não conhecia o termo "método virtual", tenho q praticar mais, to cum saudade do c#, agora voltei a trampar com vb6, não aguento mais, essa linguagem é um saco ahhaha.

Link para o comentário
Compartilhar em outros sites

  • 0
mas eu realmente não entendo. porque por evento nas classes se pode-se fazer tudo isso de forma bem mais simples só usando subs??

Como no VB6 não existe herança, métodos virtuais, sobrecarga ou delegates, eventos são formas de personalizar determinadas ações fora da classe.

Exatamente! Desculpa não ter respondido antes... é que não sabia como te explicar exatamente Kuroi.

A principio eu queria fazer algumas classes genéricas para depois no form estar aprimorando o código conforme a necessidade.

Abs,

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...