Page 1 sur 1

Passage de paramètres modifiable à une procédure

Publié : mer. 22/déc./2004 19:29
par nguray
Salut,

Est ce quelqu'un sait comment on fait pour permettre à une procédure de modifier les variables qu'on lui passe en paramètres .
Ex:
Procedure Test(a.l)
a.l = 100
EndProcedure

b.l = 10
Test(b.l)
debug b.l

Afficherais 100 et non pas 10 comme maintenant

J'ai essayé aussi

Procedure Test(*a.l)
*a.l = 100
EndProcedure

b.l = 10
Test(@b.l)
debug b.l


Mais sans succès.
J'ai l'impression qu'en PureBasic on ne peut pas passer au procédure des paramètres par référence.

:(

Publié : mer. 22/déc./2004 19:39
par Chris
Comme ça, par exemple

Procedure Test(a.l)
a.l = 100
ProcedureReturn a
EndProcedure

b.l = 10
b = Test(b.l)
Debug b.l

Publié : mer. 22/déc./2004 19:45
par nico

Code : Tout sélectionner

;/ Passage par référence

Procedure Test(*a.l) 
  PokeL(*a, 100) 
EndProcedure 

b.l = 10 
Test(@b) 
Debug b

;/ ou bien
Procedure Test2(*a.LONG) 
  *a\l=100 
EndProcedure 

b.l = 10 
Test2(@b) 
Debug b

Publié : mer. 22/déc./2004 19:55
par nguray
Chris,
On peux faire ainsi pour une seule variable, mais quand on a plusieurs variables...

Nico, je vais de ce pas essayer votre solution.

Merci à tous les deux :D

Publié : mer. 22/déc./2004 20:01
par nguray
Ne trouvez vous pas que le PureBasic mérite une méthode plus simple, plus intégré pour le passage des paramètres modifiables à une procédure

:) :idea:

Publié : mer. 22/déc./2004 20:20
par Chris
Oui, j'ai encore lu le message en travers :lol: