Tutorial controle activex

Soyez le premier à donner votre avis sur cette source.

Vue 4 538 fois - Téléchargée 455 fois

Description

c'est un controle ActiveX d'une check-box qui peut être soit noire, soit rouge. un tut décrit la marche à suivre pour l'implémentation du controle.

Merci à Renfield pour ses remarques pertinentes et à tous ceux qui ont fait des commentaires.
Alors, j'ai revu le code qui est, maintenant beaucoup plus clair et plus compact. j'ai laissé le .doc tel quel: vous pourrez ainsi vous rendre compte du gain.

mon code sur les événements click n'est peut-être pas le plus approprié; si c'est le cas, faites le moi savoir.

Conclusion :


ce controle a les propriétés suivantes:
BackColor: couleur de fond du controle
Checkcolor: détermine la couleur de la coche (rouge ou noire)
ForeColor: couleur du label
Value: Unchecked
Checked
Grayed (grisé et pas coché)
GrayedX (grisé et coché)
Frozen (gelé et pas coché)
FrozenX (gelé et coché)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

JoePatent
Messages postés
171
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
20 juillet 2008
-
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
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
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
-
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
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
"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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.