Utilisateur anonyme
-
13 mars 2004 à 13:24
EMMANUELTAVE
Messages postés22Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 3 janvier 2008
-
11 févr. 2005 à 22:40
Bonjour je voudrais savoir comment récupérer un évènement dans un module de classe, l'objet étant déclaré comme ceci :
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 15 mars 2004 à 09:37
Si tu veux pouvoir gérer dans ton module les evt de ton objet Truc, il faut que tu le déclare "WithEvents" (c'esdt tellement évident qd on te le dis !!)
EMMANUELTAV
Messages postés2Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 9 février 2005 9 févr. 2005 à 21:45
j'ai a peu pres le meme probleme :
- 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. !!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 10 févr. 2005 à 08:18
Déjà pour leverton evt il te faut un appel à ta propriété ArbHierPosfils de ton objet Test, ensuite tu verra si ton evt est bien levé ! Je ne vois pas pourquoi il ne le serait pas si mvarArbHierPosFils est différent de 0 dans l'instance Test
P.S. : Je suppose que la msgbox juste avant le raiseevent est a là des fins de test ? Sinon faut éviter ! Et pour tes tests tu peux utiliser Debug.Print, plutot qu'une msgbox
Christophe R
EMMANUELTAVE
Messages postés22Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 3 janvier 2008 10 févr. 2005 à 21:31
J'ai placé des debug.print partout => OK ; j'ai verifié que la propriété est bien appeller => OK, j'ai débugé avec F8 => Rien a faire, l'evenement ne s'execute pas dans le form.
Je me suis dit que peut etre cela vient du faite que le form est un form Fille (MdiFchild = true)
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 11 févr. 2005 à 00:26
aucun rapport avec le fait que la form soit mdichild ! Tu es sur que ton code passe bien sur la ligne du RaiseEvent dnas le code de ta propriété ? Est-ce bien pour une instance déclaré withEvent ?
EMMANUELTAVE
Messages postés22Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 3 janvier 2008 11 févr. 2005 à 22:40
La ligne RaiseEvent est bien executer avec F8.
dans le form en declaration je place : Private WithEvents test As cNoeudTypeDb
j'ai lu toutes l'aide msdn sur les evenement, j'ai tester le programme qui s'appelle PROGWOB.VBP et je suis en train de me tapper la tete contre les mur !!!! ca me casse les .....
j'ai meme essayer de Faire des erreurs pour voir comment il réagit...