TUTORIAL CONTROLE ACTIVEX

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 5 juil. 2004 à 14:23
JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008 - 6 juil. 2004 à 00:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24284-tutorial-controle-activex

JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008
6 juil. 2004 à 00:33
checked est une constante qui contient une valeur numerique non ? 0 ou 1 selon que c'est check ou non... ?

Je ne l'ai pas tester remarque....
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 juil. 2004 à 00:18
oui et non..... ce n'est pas un type Boolean.....

ca echouera au premier test If Value = Checked
JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008
5 juil. 2004 à 20:27
Private Sub Fond_case_Click()
Value IIF ( m_Value Checked , Unchecked , Checked)
End Sub

Private Sub Fond_case_Click()
Value = not m_Value
End Sub

Il s'agit d'un simple toggle.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 juil. 2004 à 14:23
"Quelques" remarques...

changes la taille du controle en mode Edition : c'est la taille qu'aura le controle quand tu l'insère par un double click sur son bouton dans la barre d'outils (il est bien trop grand !)


Public Enum EtatValue
Unchecked = 0
Checked = 1
Grayed = 2
GrayedX = 3
Frozen = 4
FrozenX = 5
End Enum

les valeurs numériques sont ici inutiles


If m_Value = Unchecked Then
Ch_Red.Visible = False
Ch_Red_grayed.Visible = False
Ch_Red_grayedX.Visible = False
ElseIf m_Value = Grayed Then
Ch_Red.Visible = False
Ch_Red_grayed.Visible = True
Ch_Red_grayedX.Visible = False
ElseIf m_Value = GrayedX Then
Ch_Red.Visible = False
Ch_Red_grayed.Visible = False
Ch_Red_grayedX.Visible = True
ElseIf m_Value = Checked Then
Ch_Red.Visible = True
Ch_Red_grayed.Visible = False
Ch_Red_grayedX.Visible = False
ElseIf m_Value = Frozen Then
Ch_Red.Visible = False
Ch_Red_grayed.Visible = False
Ch_Red_grayedX.Visible = False
ElseIf m_Value = FrozenX Then
Ch_Red.Visible = True
Ch_Red_grayed.Visible = False
Ch_Red_grayedX.Visible = False
End If


Il serait bien mieux d'utiliser un Select Case :


Select Case m_Value
Case Unchecked :
Ch_Red.Visible = False
Ch_Red_grayed.Visible = False
Ch_Red_grayedX.Visible = False
Case Grayed :
Ch_Red.Visible = False
Ch_Red_grayed.Visible = True
Ch_Red_grayedX.Visible = False

End Select



Il serait plus opportun de définir les valeurs initiales de tes propriétés dans InitProperties.... qui ne sera appelée que si necessaire !



Ce genre de code est douteux également ;)

Private Sub Fond_case_Click()
If m_Value = Checked Then
Value = Unchecked
Exit Sub
End If
If m_Value = Unchecked Then
Value = Checked
End If
End Sub

utilise plutot :

Private Sub Fond_case_Click()
Value IIF ( m_Value Checked , Unchecked , Checked)
End Sub

revoir l'indentation dans ton code, il n'aide pas toujours a la compréhension


petit conseil, evite des fonctions comme 'ActualizValue’

nomme la 'Refresh' , mets la en Public, et tout le monde s'y retrouvera bien mieux ;)

dans cette même propriété, si "pour etre tranquille" tu caches toutes tes images, inutile de les masquer de nouveux :

Ch_Red_grayedX.Visible = False
Ch_Black.Visible = False
Ch_Black_grayed.Visible = False
Ch_Black_grayedX.Visible = False
If CheckColor = Red Then
If m_Value = Unchecked Then
Ch_Red.Visible = False '< inutile !
Ch_Red_grayed.Visible = False '< inutile !
Ch_Red_grayedX.Visible = False '< inutile !
...


pour simplement tester, pas encessaire de compiler l'OCX ;)

changes ton type de proet en Projet standard (ou fais un groupe de projets) et tu aura acces a ton composant dans la barre d'otils quand tu sera dans une Form....


Ce ne sont que des remarques.... le tutoriel est complet, bien qu'un peu confus, me semble-t'il

Quelques infos utiles pour les débutants
Rejoignez-nous