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
A voir également:

15 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
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
3