Probleme avec UserControl

BRAHIM - 24 mai 2001 à 21:06
 sindbad - 25 mai 2001 à 20:17
Bonjour,
S.v.p je suis vraiment coincé c'est l'ultime etape pour boucler
mon projet. J'ai creer un composant activex avec UserControl comportant
une nouvelle propriété avec l'assistant interface de controle
activex.Une fois l'assistant terminer La proprieté apparait
effectivement dans la boite de
propriété du UserControl et je peux modifier sa valeur toujours dans
la boite de propriété, je peux aussi lire sa valeur par programme
par ex:

variable =Usercontrol11.MaPropriété
msgbox variable
bon resultat

Mais le probleme c'est que je ne peux pas modifier sa valeur par
programme
par ex:
Usercontrol11.Mapropriete=valeur

Je place le point d'arret sur "Usercontrol11.Mapropriete=valeur"
j'execute et je debogue. Le pas passe par la procedure Let qui
contient l'instruction PropertyChanged "Maproprite"
mais la valeur de la proprieté reste inchangée.

bien que le module Usercontrol contient la procedure
UserControl_WriteProperties(PropBag As PropertyBag)
.........
.........
end sub

en principe l'ecriture d'une valeur dans une propriete
dois passer UserControl_WriteProperties ce qui n'a pas lieu

voici le code du UserControl generer par l'assistant:

'Valeurs de propriétés par défaut:
Const m_def_compteur = 0
'Variables de propriétés:
Dim m_compteur As Variant

'ATTENTION! NE SUPPRIMEZ PAS OU NE MODIFIEZ PAS LES LIGNES COMMENTEES SUIVANTES!
'MemberInfo=14,0,0,0
Public Property Get compteur() As Variant
compteur = m_compteur
End Property

Public Property Let compteur(ByVal New_compteur As Variant)
m_compteur = New_compteur
PropertyChanged "compteur"
End Property

'Initialiser les propriétés pour le contrôle utilisateur
Private Sub UserControl_InitProperties()
m_compteur = m_def_compteur
End Sub

'Charger les valeurs des propriétés à partir du stockage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

m_compteur = PropBag.ReadProperty("compteur", m_def_compteur)
End Sub

'Ecrire les valeurs des propriétés dans le stockage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

Call PropBag.WriteProperty("compteur", m_compteur, m_def_compteur)
End Sub

Nb : dans l'etape définition de l'association
l'assistant interface de controle activex
J'ai essayer differente combinaison de lier la nouvelle proprité aux
controles constitutif du UserControl mais en vain.

Merci beaucoup la precieuse aide.
E-mail= m_brahim@altavista.fr

1 réponse

Salut
Je ne suis pas certain mais a votre place je m'interresserai
de plus pres au deux chose suivantes

1 L'instruction
Private Sub UserControl_InitProperties()
m_compteur = m_def_compteur
End

2 Le type de la prop "compteur" au lieu de variant
soyez plus explicit.

Bonne chance
sindbad
0
Rejoignez-nous