Bouton, gambas 3, Tutoriel, Widget - GB3- Utiliser le label comme bouton -

GB3- Utiliser le label comme bouton

( Temps de lecture estimé à 2 min 39 sec )




Utiliser la commande LAST et les groupes


 


Aujourd'hui pour notre exemple, nous allons nous intéresser à plusieurs astuces.
Je souhaite réaliser une application avec des labels qui feront office de boutons de couleur.
Lorsque je passe dans le bouton, je souhaite qu'il ait une autre couleur de fond (noir par exemple) , puis lorsque je le quitte, je souhaite qu'il reprenne sa couleur de fond initiale.
Et ceci sur 6 boutons comme le montre la photo ci dessus.



A) L'evènement ENTER (la souris rentre dans la surface du label)

Lorsque la souris rentre dans le label, la méthode ENTER est exécutée. Nous pourrons donc écrire le code à cet endroit.

B) L'évènement LEAVE (la souris quitte la surface du label)

Lorsque la souris quitte le label, la méthode LEAVE est exécutée. Nous pourrons donc écrire le code à cet endroit aussi.

C) La commande LAST.

Cette commande est vraiment pratique, elle est en quelque sorte la mémoire du dernier widget utilisée.
Vous pouvez ainsi récupérer plusieurs données comme :
Last.Tag = récupère le dernier texte présent dans la propriété TAG
Last.Text = récupère le dernier texte présent dans la propriété TEXT
Last.Background = récupère le dernier nombre présent dans la propriété BACKGROUND, etc...

Nous avons compris maintenant :

Dans la méthode ENTER, nous allons écrire ce code :

Last.background = Color.Black


Dans la méthode LEAVE, nous allons écrire ce code :

Last.background = CInt(Last.tag)


Pourquoi last.tag ?
J'ai au préalable renseigné la propriété TAB de chaque label avec le code couleur du label à l'origine.
Par exemple DARKGREEN correspond à la valeur integer : 32768.

Comment sais-je quel est son code couleur? tapez simplement dans la page de code color. comme l'image ci-dessous :


et vous verrez dans la documentation le code correspondant.

Cint vous permet de convertir en INTEGER la valeur présente dans le TAG.

D) La notion de groupe


Enfin, la notion de groupe est très importante en Gambas. Elle vous permet de réunir plusieurs widgets ensembles.
Dans la propriété GROUP de chaque label , renseignez un nom (ici bb )
Du coup un seul évènement sera créé pour l'ensemble des labels, ce qui allègera considérablement votre code.

E) Récupérer quel label a été cliqué.

Enfin, pour connaître quel bouton a été cliqué, utilisez la commande LAST comme tout à l'heure.
Nous l'afficherons dans une boite de message comme ceci :

Message.Info(Last.Text & "," & Last.tag)


Notez que pour le label, l'evènement click n'existant pas, nous utiliserons l'évènement mousedown.

Voici le code de cette application:

Public Sub bb_Enter()
Last.background = Color.Black
End

Public Sub bb_Leave()
Last.background = CInt(Last.tag)
End

Public Sub Form_Open()
Me.Center()
End

Public Sub bquit_Click()
Me.Close()
End

Public Sub bb_MouseDown()
Message.Info(Last.Text & "," & Last.tag)
End

 

Téléchargez le projet code source ICI


Merci pour votre attention.




Date de creation :
Redacteur : Rédigé par spheris
Classé dans : Bouton, gambas 3, Tutoriel, Widget