ActiveX (UserControl) - Probleme entre un UserControl et un Form

DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010 - 5 mars 2006 à 02:57
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 5 mars 2006 à 18:47
Bonjour,j'ai un UserControl (Name UsrCtrl), et un Form (Name ClientColors)

Dans mon Form, j'ai un bouton qui doit attribuer une valeur à une variable qui se trouve dans le UserControl, mais je narrive pas a y acceder, quelquun saurait comment faire ??

UserControl:

Dim ClientMsgColor As String

ClientColor:

Private Sub TextColorWhite_Click()
' Ici il doit définir la variable ClientMsgColor
End Sub

Merci d'avance

10 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
5 mars 2006 à 03:30
Bonsoir,
Public ClientMsgColor As String

Mais utilise plutot une propriété dont tu accéderas de cette manière
Private Sub TextColorWhite_Click()
ClientMsgColor = "blanc..."

End Sub

8<---------------------------------------------------
Private m_ClientMsgColor As String


Public Property Get ClientMsgColor() As String
ClientMsgColor = m_ClientMsgColor
End Property


Public Property Let ClientMsgColor(ByVal sNewValue As String)
m_ClientMsgColor = sNewValue
End Property
--------------------------------------------------->8
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 mars 2006 à 13:01
salut, à quelques détails près, Willi t'a répondu.



en effet il faut utiliser les propriétés.

par contre, c'est une couleur, donc OLE_COLOR et non String.



ensuite au Let, il faut dire au contrôle que sa propriété a changé :

propertychanged "ClientMsgColor"



ce n'est pas tout, ces valeurs, il faut aussi les enregistrer. pour çà on utilise le PropertyBag.

Init se déclenche à la pose du contrôle, Read à la lecture, et Write ...à l'écriture ;)



voir les nombreuses sources pour avoir des exemples plus concrets

++

PCPT [AFCK]
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
5 mars 2006 à 13:05
Oui en effet j'ai oublié quelques choses....à 3h30 c'est dur
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
5 mars 2006 à 17:57
Hum je me suis mal expliqué je crois :p

En fait c'est que a partir de mon Form, je n'arrive pas a acceder aux variables, controles de mon UserControl, alors que jarrive a faire le contraire ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
5 mars 2006 à 18:17
En cherchant un peu... j'ai trouvé un petit truc,
dans mon projet j'ai sa

Projet (Nom du UserControl: UsrCtrl ---- Functions.bas
---- TChatFunc.bas
---- ClientColors.bas

Dans TChatFunc.bas j'ai rajouté

Dim Pt As ActiveXTChat.UsrCtrl

Ce qui me permet d'acceder aux fonctions de UsrCtrl.
Donc je corrige mon message précédant, si vous aviez un moyen d'acceder aux variables et aux controles ...





REMerci ;)





DakM
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 mars 2006 à 18:21
les variables doivent être Private, et on y accède par les Property (qui sont Public).

si ton usercontrol peut accéder aux variables de la Form qu'elle
contient, c'est déjà qu'il y a un souci de conception (sauf exceptions)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 mars 2006 à 18:25
gni?


tu confonds Usercontrol (CTL) et Control/Projet (OCX/ActiveX contenant CTL et autre).


il va falloir être plus précis, mais çà ne change rien aux précédents messages
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
5 mars 2006 à 18:31
Bon jsuis perdu lol
j'te fais un screen sa ira plus vite ^^
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
5 mars 2006 à 18:33
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 mars 2006 à 18:47
ton module est unique et il le restera. ton usercontrol sera instancié par une Form (lors de sa pose).

il est totalement impossible que le module récupère quoi que ce soit
(objet) posé sur ton ctl. comment le module pourrait savoir qu'il doit
regarder sur UsrCtrl1, UsrCtrl2 ou UsrCtrl35 ....



c'est la conception qui est mauvaise.

une Form instancie le ctl (en exe ou en ocx). le ctl varie en fonction
des paramètres (propriétés publiques) configurés par la Form, et il
peut ensuite appeler des fonctions / procédures publiques en donnant en
paramètres ses objets (ByRef)
0
Rejoignez-nous