Gambas France BETA


Pas de compte ? Incription

simplification du code...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 27/12/2020 à 18:31:45
Bonjour,
Comment simplifier ce code :

8 boutons appartenant au groupe monbouton.
Lors d'un clic, je veux recopier le texte dans montexte dans la propriété texte du bouton.
comment simplifier la procédure click ci dessous :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PUBLIC SUB monbouton_click
SELECT CASE LAST.tag
CASE "1"
button1.Text = montexte
CASE "2"
button2.Text = montexte
CASE "3"
button3.Text = montexte
CASE "4"
button4.Text = montexte
CASE "5"
button5.Text = montexte
CASE "6"
button6.Text = montexte
CASE "7"
button7.Text = montexte
CASE "8"
button8.Text = montexte
END SELECT
END


Merci pour votre aide.
;)
valaquarus#2 Posté le 28/12/2020 à 12:03:00
-- Unus Ex Altera --Public Sub monbouton_Click()

Select Case Button
Default
Last.text = montexte
End Select

End

Bisous et bonne année
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#3 Posté le 28/12/2020 à 12:28:15
-- Unus Ex Altera --Ou autre plus simple :

Public Sub monbouton_Click()

If Last.Text = Label1.Text Then
Last.Text = ""
Else
Last.text = Label1.Text
Endif

End
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
vuott#4 Posté le 28/12/2020 à 14:32:21
Ne cedere ineluctabili possimusLe texte, contenu par la variable "montexte", est-il différent selon la bouton pressée ? Ou est-il identique pour toutes les boutons ?
« Vita non suavis esse potest, nec Mors amara. »
spheris#5 Posté le 28/12/2020 à 22:37:15
montexte est le résultat dialog.path d'un filechooser.
Il n'est pas le même.
spheris#6 Posté le 29/12/2020 à 09:42:48
Bon j'ai trouvé.
Curieux mais il suffit simplement d'écrire:

1
LAST.Text = montexte


Je ne comprends pas bien pourquoi mais voilà.
Patrick#7 Posté le 31/12/2020 à 15:56:19
Bonjour,
C'est parce que LAST prend la valeur du dernier objet utilisé dans un observateur d’événement, on peut faire des choses du genre :

LAST.Text = montext

Seclect case LAST
case Boutton1
mon traitement

Et ainsi garder la propriété Tag pour autre chose.
On peut aussi séparer les traitements avec observer :

public sub _new()

dim obs as observer

obs = new observer(button1) as "monbouton"

end

public sub monbouton_click()

LAST.Text = montext

end

public sub button1_click()

mon traitement

end

C'est pratique et lisible.
1