J'y comprend plus rien !

cs_guifr Messages postés 105 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 19 mai 2005 - 23 avril 2003 à 17:29
ICIoBRa Messages postés 368 Date d'inscription dimanche 24 juin 2001 Statut Membre Dernière intervention 7 décembre 2015 - 24 avril 2003 à 10:26
D'habitude lorsque je déclare des valeurs dans une fonction, comme function Fonction(Texte as String), il créé une nouvelle variable "Texte", et même si je modifie sa source lors du cours de l'execution de la fonction, la variable "Texte" ne sera pas modifiée.
Pourtant, de temps en temps, ça lui prend de lier la variable avec sa source, en particulier lorsque la variable est une autre variable déclarée dans une fonction précédente et qu'elles ont le même nom, ou alors lorsque la variable est un type.
Alors, j'aimerais comprendre pourquoi... Et surtout savoir comment créer deux variables indépendantes sans avoir à leur donner des noms différents...

Merci !!!

3 réponses

stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006
23 avril 2003 à 17:50
salut,

par défaut, les variables sont passées en donnant leur adresse (passage par référence)

pour résoudre ton problème, je pense donc qu'il faut passer tes variables par valeur

Pour celà il suffit d'utiliser la syntaxe suivante dans ta fonction :
function Fonction(ByVal Texte as String) as integer

@+

stabe

-- stabe --
0
cs_guifr Messages postés 105 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 19 mai 2005
23 avril 2003 à 21:46
Le coup du ByVal, ça marche impec pour les varaiables standarts... mais pas pour les variables utilisateurs (les types). Alors si quelqu'un a la solution...
0
ICIoBRa Messages postés 368 Date d'inscription dimanche 24 juin 2001 Statut Membre Dernière intervention 7 décembre 2015
24 avril 2003 à 10:26
Ba te suffit de mettre Option Explicit tout en haut de ton code :]

ICIoBRa
0
Rejoignez-nous