Gambas France BETA


Pas de compte ? Incription

tester si un module ou une classe existe...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 7/9/2022 à 16:43:27
Bonjour,
Je ne retrouve plus cette ligne de code dans le forum.
Savez-vous comment tester la présence d'un module ou d'une classe dans gambas?

exemple: j'ai un module module1 avec une methode
public sub hello()
message.info("toto!!")
end sub

Je voudrais savoir si
a) module1 existe
b) si la methode hello dans le module1 existe.

Merci pour vos réponses.
vuott#2 Posté le 7/9/2022 à 18:23:18
Ne cedere ineluctabili possimusPour savoir si une "Classe" a été chargée, vous pouvez utiliser la Méthode ".IsLoaded()" de la Classe "Class".
Pour savoir si une Classe a une Méthode de nom d'identifiant connue, nous pouvons utiliser la Propriété ".Symbols" de la classe "Class" dans une ligne de commande complexe.
Dans l'exemple suivant, imaginons que nous ayons un Module principal et une Classe secondaire, appelée "Class1.class", qui a une Méthode, appelée "Hello()". Nous voulons savoir si cette Classe secondaire a été chargée et si elle a la Méthode "Hello()" susmentionnée.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUBLIC cl1 AS Class1


PUBLIC SUB Main()

cl1 = NEW Class1

' Class.IsLoaded() veut le nom d'identifiant d'une Classe:
IF Class.IsLoaded("Class1") THEN PRINT "La Classe \"Class1.class1\" a été chargée."

' Object.Class() veut le nom de la variable qui pointe vers l'Objet, c'est-à-dire l'Instance, d'une Classe:
IF Object.Class(cl1).Symbols.Find("Hello") > -1 THEN PRINT "La Classe \"Class1.class1\" a la Méthode \"Hello()\"."

END
« Vita non suavis esse potest, nec Mors amara. »
spheris#3 Posté le 8/9/2022 à 09:38:24
Merci Vuott, c'est exactement ce que je cherchais.
bravo !
vuott#4 Posté le 8/9/2022 à 13:42:49
Ne cedere ineluctabili possimusIl me semble cependant qu’il y a quelques difficultés à vérifier l’existence des "Modules". :|
« Vita non suavis esse potest, nec Mors amara. »
1