Simplifier le code du bouton
Bonjour,
Aujourd 'hui pour ce tutoriel, nous allons réaliser une application avec 4 boutons.
Je souhaite que quand je clique sur un bouton, les trois autres se désactivent à la manière du comportement des radiobutton.
A) création de l 'interface.
Créons 4 boutons comme ceci :

et un bouton Button5 dont la propriété Text est : Reset
qui nous permet de réactiver tous les boutons.
B) Ecriture du code
Tout naturellement nous pouvons écrire le code comme ci-dessous quiconsiste à désactiver les boutons non cliqués comme ceci :
Public Sub Button1_Click()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
End
Public Sub Button2_Click()
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = False
Button4.Enabled = False
End
Public Sub Button3_Click()
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = True
Button4.Enabled = False
End
Public Sub Button4_Click()
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = True
End
Public Sub Button5_Click()
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
End
C) Simplification du code en utilisant les groupes
Nous pouvons simplifier ce code en utilisant les groupes.
En effet, les groupes servent à regrouper plusieurs widgets ensemblequi réagiront au même évènement.
dans la propriété GROUP de chaque bouton, saisissez toto.Tous ces boutons appartiendrons au groupe toto.
Dans la propriété Tag de chaque bouton, saisssezrespectivement 1,2,3,4.
Ainsi nous n 'aurons qu 'un seul évènement click comme ceci :
PUBLIC SUB toto_Click()
SELECT CASE LAST.tag
CASE 0
bouton0.Enabled = FALSE
bouton1.Enabled = TRUE
bouton2.Enabled = TRUE
bouton3.Enabled = TRUE
CASE 1
bouton0.Enabled = TRUE
bouton1.Enabled = FALSE
bouton2.Enabled = TRUE
bouton3.Enabled = TRUE
CASE 2
bouton0.Enabled = TRUE
bouton1.Enabled = TRUE
bouton2.Enabled = FALSE
bouton3.Enabled = TRUE
CASE 3
bouton0.Enabled = TRUE
bouton1.Enabled = TRU
bouton2.Enabled = TRUE
bouton3.Enabled = FALSE
END SELECT
END
D) simplification du code à l 'extrême.
Nous pouvons encore simplfier le code.
 En regardant de plus près, nous jouons sur la propriétéenabled pour activer ou désactiver le bouton.
Ainsi, nous pouvons utiliser la propriété ACTION en saisissant pourchaque bouton le texte bouton.
En cumulant le groupe et action, nous écrivons alors ce code :
PUBLIC SUB toto_Click()
Action[ bouton , ME].Enabled = TRUE
LAST.Enabled = FALSE
END
Expliquons ce code :
public Sub toto_click Lors d 'un click sur un widgetappartenant au groupe toto
Action[ bouton , ME].Enabled = TRUE la propriétéenable passera à true sur la widget dont l 'action se prénommebouton,
LAST.Enabled = FALSE et ce dernier qui a été cliquéaura sa propriété enabled à False.
En conclusion, nous avons simplifié le code en à peine 3 lignes.
C 'est ça la puissance de gambas.
Merci à tous pour votre attention.