Evenement dans une classe et Recepteur qui ne Fonctionne pas

EMMANUELTAV Messages postés 2 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 9 février 2005 - 9 févr. 2005 à 21:57
psz1974 Messages postés 2 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 24 mars 2005 - 24 mars 2005 à 18:07
Je ne sais pas si c'est le bonne endroit pour pose cette question !!! j'ai un probleme qui est spec!!! :

- j'ai une classe : cNoeudTypeDb

Public Event evmDeplacementVersBas()

- Dans cette classe une propriétée :

Public Property Let ArbHierPosFils(ByVal vData As Integer)
On Error GoTo ArbHierPosFilsLetErr

mvarArbHierPosFils = vData

'-- Si la Valeur de la variable interne a la classe est 0 --
'-- alors l'est la première ecriture --
If mvarArbHierPosFils = 0 Then

'-- Si non On est en cour de la ré assigner --
Else
MsgBox "tu est en train de la bouger c'est un evenement"
RaiseEvent evmDeplacementVersBas
End If

Exit Property


ArbHierPosFilsLetErr:
'---------------------------------------------------------------------------------------
Call RaiseError(MyUnhandledError, "cNoeudTypeDb:ArbHierPosFils Propriétée Let")
End Property

- dans un form :

Private WithEvents test As cNoeudTypeDb

Private Sub test_evmDeplacementVersBas()
cmdReduireBranche.Visible = False
MsgBox "c'es recu"


End Sub

- Rien ne marche !!! de plus lorsque je débog les instruction dans la classe sont correctement executer mais l'evenement dans le form n'est pas executer. !!!!!

2 réponses

psz1974 Messages postés 2 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 18:05
Salut,

Sur la classe rien à dire, c'est bon, par contre pour la réception de l'évenement tu dois prendre en compte trois choses.

1) Tu ne peux pas te contenter de la déclaration avec withevents, il faut quand meme que tu instancie l'objet, soit avec un new, soit en lui affectant un object déjà alloué
2) Pour que la propriété Let de ta classe soit appelée, il faut que quelque part, tu ai un :
test .ArbHierPosFils= "toto"
3) enfin, essaie d'éviter les messagebox quand tu fais tes tests sur de l'événementiel (meme si ca peux quand meme marcher

Voilà un exemple testé :

<HR>

Une Classe cTest
Public Event MyEvent(MyValue As String)


Public Property Let Member(newValue As String)
RaiseEvent MyEvent(newValue)
End Property



<HR>


Dans une feuille (form):
Private WithEvents otest As cTest


Private Sub Form_Load()
Set otest = New cTest
otest.Member = "coucou"
End Sub


Private Sub otest_MyEvent(MyValue As String)
Me.Caption = MyValue
End Sub

<HR>

Et l'objet de démarrage doit etre la feuille.


Voilà, c tout simple
Ma zété tun grosse problem Za
0
psz1974 Messages postés 2 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 18:07
J'oubliai, ca écrit coucou dans le caption de la feuille


Ma zété tun grosse problem Za
0
Rejoignez-nous