WithEvents

Résolu
lispo Messages postés 49 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 1 septembre 2008 - 6 juil. 2006 à 19:37
lispo Messages postés 49 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 1 septembre 2008 - 8 juil. 2006 à 18:38
Bonjour a tous,
J 'ai crée une classe cercle(Vba AutoCad)
mais je voudrais lui attribuer un evenement(ex: apparition d'un msgbox)
voila comment j'ai fait ma classe

''' Dans mon module Class
Public Event RayonChanger()


Private C_Rayon As Double
Private C_Air As Double
Private C_Centre As Variant
Public Objcercle As AcadCircle
Private Sub Class_Initialize()
    C_Rayon = 1
End Sub


Public Property Let Rayon(Valeur As Double)
    C_Rayon = Valeur
    RaiseEvent RayonChanger
End Property


Public Property Get Rayon() As Double
   Rayon = C_Rayon
End Property


Public Property Let Centre(Valeur As Variant)
    C_Centre = Valeur
End Property


Public Property Get Centre() As Variant
   Centre = C_Centre
End Property


Public Property Get Air() As Double
    Air = 2 * 3.14159265358979 * C_Rayon
End Property


Public Property Get Circonference() As Double
    Circonference = 3.14159265358979 * (C_Rayon * 2)
End Property


Public Property Get Pos_Centre() As Variant
Pos_Centre = Centre(0) & " / " & Centre(1) & " / " & Centre(2)
End Property


Public Property Get Diametre() As Double
Diametre = 2 * C_Rayon
End Property


Function Draw_Cercle() As Object
Set Objcercle = ThisDrawing.ModelSpace.AddCircle(Centre, Rayon)
Objcercle.Update
End Function
Private Sub cercle1_RayonChanger()
MsgBox "Rayon a changer " & Rayon
End Sub

'Dans un module normale

Private Sub Button1_Click()
Dim cercle1 As New cercle
Me.Hide
With ThisDrawing.Utility
cercle1.Centre = .GetPoint(, " Centre !")
cercle1.Rayon = 50
End With
cercle1.Draw_Cercl
End Sub

-------------------
--------------------


'' Puis j'ai rajouter tout ce qui est en bleu pour mon evenement
mais quand je change de Rayon rien n'apparait.
Si quelqu'un pourrais m'aider ca serais kool
Merci d'avance

15 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 juil. 2006 à 17:53
c'est bien ce que je dis, tu as mal regardé le code...
comment veux-tu recevoir un évènement d'un objet qui n'est pas instancié pour toute la durée de vie de la Form.....

il faut :
Set Cercle1 = New
Cercle

dans le Form_Load ou UserForm_Load (je te rapelle que je n'utile pas VBA...)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Rejoignez-nous