Page 1 sur 1
Les énumérations comme type de variable
Publié : mer. 25/janv./2017 16:02
par Guillot
Un exemple de code (inspiré du VB) tel que j’aimerai le voir en PB
Code : Tout sélectionner
Enumeration choix
#valeur1
#valeur2
#valeur3
EndEnumeration
Procedure test(v.choix)
...
EndProcedure
test(#valeur1 | #valeur3)
Define a.i
a = choix.#valeur2
Define b.choix
b=#valeur1
Le principal intérêt est de facilité l’usage des constantes
Lorsque je tape ‘ test(‘ l’editeur me propose automatiquement #valeur1,#valeur2, #valeur3 (et apres les opérateurs relatifs aux entiers (‘|’ principalement))
De même lorsque je tape ‘a=choix.’ Avec ‘a’ de type entier
Ou lorsque je tape ‘b= ‘ avec ‘b’ de type choix
Appliqué aux fonction PB ça facilliterai grandement l’ecriture du code
Par exemple :
OpenWindow(0, 0, 0, 512,512, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
deviendrai :
OpenWindow(0, 0, 0, 512,512, "", #SystemMenu | #ScreenCentered | #SizeGadget)
Plus besoin de taper ‘#PB_Wi ‘ pour voir les options possible (ou comme moi : aller dans l’aide et copier la constante voulue…)
De plus ça rend la syntaxe plus clair (moins de répétition (ici ‘PB_Window_ ‘) ) et ça limite les risque d’erreur
Re: Les énumérations comme type de variable
Publié : mer. 25/janv./2017 16:23
par Micoute
Le mieux serait au développeur de se fabriquer un fichier de constantes personnelles qu'on chargerait avec IncludeFile.
Re: Les énumérations comme type de variable
Publié : mer. 25/janv./2017 23:35
par JohnJohnsonSHERMAN
Ca me semble une trés bonne idée ca...

Re: Les énumérations comme type de variable
Publié : jeu. 26/janv./2017 0:06
par falsam
@JJ: Bon tu es comme d'habitude hein ? ^^
@Guillot: Je ne te suivrais pas dans ta suggestion. Peut être à cause de l'exemple ...
Non mais franchement !!
Un exemple de code (inspiré du VB) tel que j’aimerai le voir en PB
inspiré de VB ? (No troll) Mais non je l'aime mon PureBasic. Qu'il reste comme il est
Il y a des choses à améliorées c'est certains. Mais que PureBasic reste lui même : Simple et rapide.
Il y a des gens barrés sur ce forum mais toi tu abuses.
Re: Les énumérations comme type de variable
Publié : jeu. 26/janv./2017 9:44
par djes
Il y a de l'idée là-dedans, même si j'ai dû me contorsionner l'esprit pour en voir l'intérêt. Je crois comprendre l'effet de souplesse de l'édition de code, effectivement !
Ce que j'aime moins, c'est la confusion, même si je reconnais que ça permet souvent des choses inédites. Par exemple, le fait d'utiliser le typage avec des constantes, ça me rend dingue, parce que ça mélange le travail du compilateur et le travail de l'interpréteur. Et souvent les débutants mélangent ces deux choses dans la phase d'apprentissage, et c'est d'ailleurs ce que je (et je ne suis pas le seul) reproche aux langages tels que VB. A la fin on ne sait plus ce qu'on manipule, et on perd de vue le travail du processeur et la quantité de mémoire requise.
Enfin bref, ici, il y a effectivement un intérêt, mais perso je n'en veux pas sous cette forme. Pour orienter les choses, je pense que tu as oublié un truc, c'est le type de v. Il faut qu'il soit défini quelque part. Ca remet en cause l'utilisation du point (.) qui doit rester (à mon avis) strictement associé au typage.
Re: Les énumérations comme type de variable
Publié : jeu. 26/janv./2017 10:20
par Guillot
bon je pense que mes explications sont pas tres claire
et le titre fait pas rêver !
mais je pense que ce serait une évolution extrêmement importante de PB
les commandes PB font usage des constantes plus que n'importe quel autre langage à ma connaissance
ce que je propose c'est ni plus ni moins que d'avoir automatiquement la liste des constantes concernés pour chaque paramètre 'constante' des commandes
un peu à l'image des structure: lorsqu'on tape "\" on à la liste de ses variables
quand à la syntaxe, là, c'est discutable
j'ai mis un '.' en tre le nom de l'enumeration et la constante, mais on pourrai aussi prendre un '\' comme les structures, ou autre choses
de même, comme le fait remarquer falsam:
'a = choix.#valeur2' c'est pas terrible, je préférerai
'a = #choix.valeur2' c'est juste que le '#' n'est pas autorisé pour les noms d'énumération
(si ce mode de fonctionnement était limité aux commande PB, ce serai deja, à mon avis, le principal)
Re: Les énumérations comme type de variable
Publié : jeu. 26/janv./2017 10:43
par microdevweb
Franchement je trouve Pb bien comme il est, même si je regrette certain manque comme la Poo.
On peut évidement créer ses propres constantes ou par exemple
Code : Tout sélectionner
OpenWindow(0,0,0,800,600,"teste",$CB0001)
; équivaut à
OpenWindow(0,0,0,800,600,"teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
OpenWindow(0,0,0,800,600,"teste",$CB0001|#PB_Window_Maximize)
;Ou
OpenWindow(0,0,0,800,600,"teste",$1CB0001)
; équivaut à
OpenWindow(0,0,0,800,600,"teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
Comment retrouver cette valeur hexa?
C'est vraiment très simple
Code : Tout sélectionner
Debug Hex(#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
; Il suffis juste d'ajouter le $ devant
Ce qui est certain c'est que Pb doit resté un langage de programmation bas niveau et les constantes doivent resté des constantes.
Re: Les énumérations comme type de variable
Publié : jeu. 26/janv./2017 17:05
par djes
En fait, je pense que ça pourrait peut-être le faire avec
Dans le cas où l'interpréteur (et le programmeur qui lit le code...) voit que la constante (ou l'énumération) est typée, il peut adapter sa logique. C'est relativement simple. Même que ça me plait bien
