Page 1 sur 1

Constantes dans Enumération

Publié : ven. 17/déc./2010 9:55
par MLD
Ce matin je dois avoir les neuronnes qui patinent :roll:
Mais quelle serait la fonction qui permet de retrouver le nom de la constante par sont numéro :?: :?:

Code : Tout sélectionner

Enumeration
#Toto = 1
#Mulo = 2
#Velo = 3
EndEnumeration

Debug ???? ;(fonction pour savoir que 2 = Mulo)

End

Cela parait dérisoire dans un petit programme, mais dans un programme de 10 000 lignes cela peut être utile. :wink:

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 10:27
par boddhi
Salut.

A ma connaissance, une telle fonction PB n'existe pas et, je pense, ne saurait exister, en tout cas sous une forme simple, dans la mesure où plusieurs constantes peuvent avoir la même valeur.

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 10:33
par MLD
Salut boddhi
Si dans l'Enumération plusieurs constantes ont la même valeur, c'est une erreur. :mrgreen:

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 11:14
par boddhi
Non, pas du tout !

Code : Tout sélectionner

Enumeration
  #AAA
  #BBB
  #CCC
EndEnumeration
Enumeration
  #DDD
  #EEE
  #FFF
EndEnumeration
ou bien encore, rien ne t'empêche d'écrire :

Code : Tout sélectionner

Enumeration
  #AAA
  #BBB
  #CCC
  #DDD
  #EEE
  #FFF=2
  #...
EndEnumeration
auxquels cas #CCC et #FFF ont bien la même valeur, 2 en l'occurence.
Donc comment une fonction "simple" pourrait te retourner #CCC et #FFF en même temps ?

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 11:33
par MLD
@ boddhi

Bien entendu tu peux écrire un programme comme tes exemples. Mais je te souhaite bon courage pour retrouver tes petits là dedans.
N'oublie pas que la plupart du temps les constantes sont des noms de gadgets, et ta façon de faire est le meilleur moyen d'avoir deux gadgets avec le même numéro, et aprés bonjour le souc :mrgreen:

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 11:45
par boddhi
Tu as raison ! :)
Mais pour des gadgets, je ne procède pas comme cela...
J'utilise #PB_Compiler_EnumerationValue en découpant chaque groupe de constantes liés à une fenêtre, ce qui donne cela :

Code : Tout sélectionner

Enumeration ; Gadgets fenêtre 0
  #GAD_FEN0DESCRIPTION_DESCRIPTIONGADGET1
  #GAD_FEN0DESCRIPTION_DESCRIPTIONGADGET2
  #GAD_FEN0DESCRIPTION_DESCRIPTIONGADGET3
EndEnumeration
Enumeration #PB_Compiler_EnumerationValue ; Gadgets fenêtre 2
  #GAD_FEN1DESCRIPTION_DESCRIPTIONGADGET1
  #GAD_FEN1DESCRIPTION_DESCRIPTIONGADGET2
  #GAD_FEN1DESCRIPTION_DESCRIPTIONGADGET3
EndEnumeration
Comme cela j'évite tout risque de déclaration identique :wink:

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 14:11
par Backup
pour ma part, en general, je n'utilise qu'un seul enumeration-endenumeration
pour tout le code !!

apres , je peut eventuellement faire des reperes

Code : Tout sélectionner

enumeration

; fenetre
#win_1
#win_2

;gadgets
#toto
#titi
#tutu

; fichiers
#file1
#file2
#file

endenumeration
de cette façon, aucuns problemes ! :)

Re: Constantes dans Enumération

Publié : ven. 17/déc./2010 14:30
par MLD
Yes Dobro :wink: