Voici une série de tutoriel sur le Label.
Vous saurez:
Comment ajouter un Label
Le Label permet d'ajouter des textes a votre fenetre.
Vous pouvez le modifier dynamiquement pendant l'execution de votre application
Pour creer un label cliquez sur le bouton LABEL ( symbolise par le A) sur la boite Widget
Drag and Drop d'un texte
Nous allons creer une fenetre Form avec un label1 et une textbox1.
Lorsque l'utilisateur selectionnera le texte dans la textbox et la fera glisser avec la souris, le label changera et dira que le texte se deplace.Puis lorsqu'il arrivera sur le label1 on dira que l'action est finie.
Commencons par la creation de la fenetre : rien de bien compliqué.
N'oubliez pas que le widget label1 doit avoir sa propriété DROP a la valeur TRUE
puis passons au code :
creons une fonction drag sur la textbox1 pour autoriser un deplacement :
PUBLIC SUB TextBox1_Drag() label1.text = "Je suis entrain de deplacer le texte..." END
creons une fonction DROP pour la reception de l'evenement drag :
PUBLIC SUB Label1_Drop() Label1.text = "Ca y est j'ai fini!" END
voila c fini !
Lancer l'application, selectionner le texte dans la textbox1 et deplacez le en maintenant le clic gauche enfoncé, le label1 change, etonnant non ? et bien non, C'est ca gambas, simple et intuitif !
Utliser le label sur un écran tactile
Avec l'entree dans l'ere des ecrans tactiles je me suis penché sur la possibilité de rendre un programme gambas avec une interface tactile.
Tout d'abord il faut avoir une dalle tactile. Por ma part j'ai utilisé la Egalaxy que l'on trouve pratiquement partout sur le net.
Ensuite il faut calibrer la dalle avec le paquet "calibrate touchscreen" disponible dans les depots de vos distributions linux.
copiez ou créez le fichier /etc/X11/xorg.conf.d/99-calibration.conf pour rendre la calibration permanente.
Nous voila fin prêt pour utiliser notre dalle avec gambas.
Il faut savoir qu'une dalle tactile n'est en fait qu'une souris améliorée, aussi tous les evènements sont les mêmes que les evènements MOUSE.
A savoir :
Appuie du doigt correspond à mousedown
glisser du doigt correspond à mousemouve ou mousedrag
relachement du doigt correspond à mouseup
Voici une petite application en GB2 pour incrémenter un compteur ou décrémenter à l'aide d'un mouvement de doigt.
Et voici le code de l'application:
Private debut As Integer Private fin As Integer Public Sub _new() End Public Sub Form_Open() Me.Center End Public Sub Label1_MouseMove() Label2.Text = Mouse.x debut = Mouse.X End Public Sub Label1_MouseDown() Label3.Text = Mouse.X fin = Mouse.X End Public Sub Label1_MouseUp() Label4.Text = Mouse.x If fin > debut + 30 Then Dec LCDNumber1.Value If fin < debut - 30 Then Inc LCDNumber1.Value If debut - 10 = fin + 10 Then LCDNumber1.Value = LCDNumber1.Value End
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
Merci pour votre attention.
Tutoriel sur le clignotement d'une Led avec un Label
Bonjour,
Aujourd'hui nous allonsvoir comment faire clignoter un Label vide de son texte . Il donnera l'apparence d'une LED, petit signal visuel très pratique pour votre application.
Créez un label , ajoutez lui une propriété BORDER = RAISED, une propriété BACKGROUD = &H000000& .
Créez maintenant 2 boutons, un pour allumer, un pour eteindre notre LED.
un timer est indispensable dans votre programme dès que vous avez besoin d'une fonction faisant intervenir le temps.
Le luxe est même d'ajouter un slider qui nous fera varier la vitesse de notre clignotement.
Vous pourrez télécharger plus bas l'application exemple.
Maintenant voici le code de notre application que je vais commenter en rouge:
' Gambas class file PUBLIC SUB _new() END PUBLIC SUB Form_Open() ME.Center 'centre la fenetre END PUBLIC SUB Timer1_Timer() 'cette fonction est le clignotement par lui meme SELECT CASE lled.Background CASE &h000000& lled.Background = &h00FF00& CASE &h00FF00& lled.Background = &h000000& END SELECT END PUBLIC SUB bon_Click() 'bouton de demarrage clignotement Timer1.Enabled = TRUE END PUBLIC SUB boff_Click() 'bouton arret Timer1.Enabled = FALSE END PUBLIC SUB Slider1_Change()'variation du slider entrainant variation de vitesse clignotement Timer1.Delay = Slider1.Value END
Les Propriétés du Label
Au travers de cette petite application en exemple je vous propose de découvrir les propriétés du label avec quelques petits exemples de code en illustration .
' Gambas class file PUBLIC SUB _new() END PUBLIC SUB Form_Open() ME.Center END PUBLIC SUB bquit_Click() ME.Close END PUBLIC SUB Button1_Click() Label1.X = Label1.X + 4 END PUBLIC SUB Button2_Click() Label1.X = Label1.X - 4 END PUBLIC SUB Button4_Click() Label1.y = Label1.y + 4 END PUBLIC SUB Button3_Click() Label1.y = Label1.y - 4 END PUBLIC SUB Button5_Click() Label1.Width = Label1.Width - 4 END PUBLIC SUB Button6_Click() Label1.Width = Label1.Width + 4 END PUBLIC SUB Button7_Click() Label1.Height = Label1.Height - 4 END PUBLIC SUB Button8_Click() Label1.Height = Label1.Height + 4 END PUBLIC SUB CheckBox1_Click() SELECT CASE Label1.Visible CASE TRUE Label1.Visible = FALSE CASE FALSE Label1.Visible = TRUE END SELECT END PUBLIC SUB Button9_Click() Label1.ToolTip = TextBox1.Text END PUBLIC SUB Button10_Click() Label1.Text = TextBox2.text END PUBLIC SUB ColorChooser1_Change() Label1.Background = ColorChooser1.Value END PUBLIC SUB ComboBox1_Change() Label1.Mouse = ComboBox1.Text END PUBLIC SUB ComboBox2_Change() Label1.Border = ComboBox2.Text END PUBLIC SUB FontChooser1_Change() Label1.Font = Font[FontChooser1.Value] END PUBLIC SUB Label1_Drop() Label1.Text = TextBox3.Text END PUBLIC SUB TextBox3_Drag() LAST.Text = TextBox3.Text END
Documentation Officielle
Pour en savoir plus sur le Label rendez-vous dans la documentation officielle: