OVH Cloud OVH Cloud

Variables static ??

3 réponses
Avatar
steph
bonjour,
je travaillais sur visual basic avant d'aborder windev, et je pouvais, sous
Vb, créer une variable Static dans une procédure locale (donc la variable
déclarée dans cette procédure était locale également) mais par contre elle
concervait sa valeur quand je sortait de la procédure, ce qui me permettait
de la retrouver quand je rentrais une seconde fois dans la procédure : je
trouvais cela très pratique, mais je n'ai pas vu de notion de variable
statique sous windev ? serais ce une limite?

3 réponses

Avatar
farplus
steph avait énoncé :
bonjour,
je travaillais sur visual basic avant d'aborder windev, et je pouvais, sous
Vb, créer une variable Static dans une procédure locale (donc la variable
déclarée dans cette procédure était locale également) mais par contre elle
concervait sa valeur quand je sortait de la procédure, ce qui me permettait
de la retrouver quand je rentrais une seconde fois dans la procédure : je
trouvais cela très pratique, mais je n'ai pas vu de notion de variable
statique sous windev ? serais ce une limite?



Bonjour,
Il y a qq chose qui cloche dans ton explication.
Si la variable est locale à une procédure, elle est créée à l'appel de
la procédure et détruite à la sortie.
Je pense que tu as une variable locale à une fenêtre ou à une procédure
d'appel et que tu la passes en paramètre à une autre procédure.
pour répondre à ton pb la solution est la suivante:
passer à ta procédure les parametres par valeur plutôt que par adresse.
les variables ainsi passées ne changeront pas.
pour ce faire il faut appeller la procedure avec une double paranthèse

ma_procedure((param1,param2,param3,param4))

s'il n'y a qu'un seul param qui doit rester inchangé, et plusieurs
autres subir une modif, la meilleure solution est:
sauve_param1 est...=param1
ma_procedure(param1,param2,param3,param4)
param1=sauvve_param1

dans le cas inverse (admettons que seul param2 doit être modifié):
param2=ma_procedure((param1,param2,param3,param4))

et
REnvoyer param2 à la fin de la procédure.

pour mémoire rappelons qu'il y a aussi le type CONSTANT
qui sert plutôt comme moyen memnotique.

A+




Constant
Ma_constante43
Fin

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Byky
Utilise une variable globale, comme ca tu pourras aussi retrouver sa valeur
précédente à chaque fois que tu repasses dans ta procédure.


"steph" a écrit dans le message de
news:40a3e938$0$8645$
bonjour,
je travaillais sur visual basic avant d'aborder windev, et je pouvais,


sous
Vb, créer une variable Static dans une procédure locale (donc la variable
déclarée dans cette procédure était locale également) mais par contre elle
concervait sa valeur quand je sortait de la procédure, ce qui me


permettait
de la retrouver quand je rentrais une seconde fois dans la procédure : je
trouvais cela très pratique, mais je n'ai pas vu de notion de variable
statique sous windev ? serais ce une limite?




Avatar
Carlos DOS REIS
Bonjour Steph,

Non pas de variables Static en WinDev
En Windev ces vaiables sont remplacées soit par des variables glbales, ou bien
elles sont passées en paramètre à la fonction (Entrée / Sortie)

@A+

Carlos DOS REIS Membre de WindAsso www.windevAsso.org
[drCharly93] co-animateur www.rbesset.net

--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/