Anderson Fernandes Postado Dezembro 5, 2007 Denunciar Share Postado Dezembro 5, 2007 (editado) Boa tarde pessoal! beleza?Em um componente é só criar criar um eventoPublic 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 Dezembro 5, 2007 por Anderson Fernandes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 6, 2007 Denunciar Share Postado Dezembro 6, 2007 ue, mas qual seria a utilidade de se declarar evento numa classe??os eventos são respostas pra acoes dos usuarios. os usuarios não vao interagir com classes, apenas o programador.o q exatamente você quer fazer?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 6, 2007 Denunciar Share Postado Dezembro 6, 2007 Declare o objeto assim...Dim WithEvents objeto As Classe... onde o "pulo-do-gato" é a palavra-chave WithEvents.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Anderson Fernandes Postado Dezembro 7, 2007 Autor Denunciar Share Postado Dezembro 7, 2007 (editado) Bom... eu fiz um teste e não deu muito certo!Dentro da "Class1" eu coloquei este scriptOption 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 SubQuando 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 Dezembro 7, 2007 por Anderson Fernandes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 7, 2007 Denunciar Share Postado Dezembro 7, 2007 olha q você declarou duas classes e ta usando as duas cada uma de uma vez.o codigo do Form1 deveria ser esse:Option ExplicitPrivate cTeste As New Class1Private WithEvents EventoTeste As Class1Private Sub Command1_Click() EventoTeste.fTeste "Anderson"End SubPrivate Sub EventoTeste_eTeste(sValor As String) Me.Text1 = sValorEnd SubPrivate Sub Form_Load() Set EventoTeste = New Class1End 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?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 8, 2007 Denunciar Share Postado Dezembro 8, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 8, 2007 Denunciar Share Postado Dezembro 8, 2007 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"?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 8, 2007 Denunciar Share Postado Dezembro 8, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Dezembro 9, 2007 Denunciar Share Postado Dezembro 9, 2007 É 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 9, 2007 Denunciar Share Postado Dezembro 9, 2007 E lembrando que no VB.NET um método virtual é declarado como Overridable e um método/classe abstrata é MustOverride.É, pra mim o VB6 já era... VB.NET rulez! :)Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Anderson Fernandes Postado Dezembro 10, 2007 Autor Denunciar Share Postado Dezembro 10, 2007 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, Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Anderson Fernandes
Boa tarde pessoal! beleza?
Em um componente é só criar criar um evento
e depois executar dentro de uma function, Sub ou Property (...) então quando eu dou um duplo click no componemte aparece o evento MAS, tambem é possivel se criar e executar eventos em classes mas como eu faço para usar o evento executado? tipo: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 FernandesLink para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
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.