Gambas France BETA


Pas de compte ? Incription

utiliser une méthode static

Ce sujet est résolu.

1
AuteurMessages
stracoma#1 Posté le 21/5/2017 à 16:21:32
Apprentissage programmation pour le plaisirBonjour
J'ai un projet où il y a 2 Form. Je veux utiliser une méthode static qui fonctionnera dans les deux form. J'ai donc créé une classe que j'appelle "les_fonctions"
1
2
3
4
5
6
7
8
9
10
11
12
STATIC PUBLIC SUB changer(str AS STRING)
DIM obj AS OBJECT
FOR EACH obj IN ME.Children
IF obj.Name LIKE "lbl*" THEN
IF str = "effacer" THEN
obj.Text = ""
ELSE
obj.Foreground = Color.Black
ENDIF
ENDIF
NEXT
END

dans les form je fais:
1
les_fonctions.changer("effacer")

mais quand je compile j'ai ce message d'erreur:

Merci à vous
SVP patience avec moi car neurones > 50 ans
davidmue#2 Posté le 21/5/2017 à 20:30:33
Bonsoir stracoma,
Il y a une classe "les_fonctions". Cette classe est-elle statique (Create Static) ?
Une méthode STATIC ne peut accéder qu'aux variables statiques de la classe.
En gros, ça ne fonctionne pas avec Me car Me se réfère à l'instance en cours d'utilisation.
Je pense qu'il faut modifier l'appel dans les deux Forms comme suit :
1
les_fonctions.changer(ME, "effacer")

et la fonction comme suit :
1
2
3
4
5
STATIC PUBLIC SUB changer(f AS Form, str AS STRING)
DIM obj AS OBJECT
FOR EACH obj IN f.Children
IF obj.Name LIKE "lbl*" THEN
...

Bonne soirée.
David

Gambas.. C'est chouette !
stracoma#3 Posté le 21/5/2017 à 23:13:19
Apprentissage programmation pour le plaisirMerci David pour ton aide
Ton code a résolu mon problème. Je l'ai bien assimilé (étant novice,une Form en paramètre, c'est ma première fois)
A +
SVP patience avec moi car neurones > 50 ans
Patrick#4 Posté le 22/5/2017 à 13:52:15
Bonjour,
Juste une remarque en passant, str c'est aussi le nom d'une fonction gambas et il me semble qu'il n'est pas conseiller de l’utiliser comme variable.
stracoma#5 Posté le 23/5/2017 à 12:39:44
Apprentissage programmation pour le plaisirOk merci
SVP patience avec moi car neurones > 50 ans
1