Bonjour,
cela s'apprend en cours d'informatique
les parametres
d'une fonction ou d'une procedure (une fonction renvoie un resultat et une procedure ne renvoye rien) de plus une fonction ne peut renvoyer qu'UN SEUL RESULTAT si on veut récupérer plusieurs résultat c'est donc une procédure avec des paramètres donnée, rsultat
les paramètres on 3 types
- données : paramètres qui sert a la procédure mais qui n'est pas modifié par le code de la procédure
- résultat : paramètres dont la valeur ne sert pas pour la procédure mais récupère un résultat de la procédure
- données / résultat : paramètres qui va servir dans la procédure et qui récupéra une valeur a la fin
les parametres passés a une fonction ou une procédure peuvent l'être de 2 faons
- par valeur : on reprend la valeur du paramètre mais le paramètre n'a pas d'existence propre
- par adresse : le paramètre est un variable , champs ... et est passé donc connu dans la procédure et peut être modifié
Windev fait par défaut des passages par adresse (pour un passage par valeur il faut encadrer le paramètre par des parenthèses)
ex
- Code: Tout sélectionner
procedure Ajoute( p_param)
P_pam = p_param+3
si dans un code windev je fais
- Code: Tout sélectionner
Mavar est un entier=1
ajoute(Mavar)
alors apres l'appel de la procedure maVar contient 4
par contre en faisant
- Code: Tout sélectionner
Mavar est un entier=1
ajoute((Mavar))
alors apres l'appel maVar vaut toujour 1
voila donc pour le passage de paramètres
ensuite passons aux fonctions
- Code: Tout sélectionner
Fonction ajoute(p_param)
renvoyer (p_param+3)
la lors de l'appel on peut faire
[ocde]
MaVar est un entier = 1
MonRes est un entier
MonRes = ajoute(maVar)
[/code]
dans ce cas monRes = 4 et maVar =1 apres l'appel
tout ca pour en venir qu'une fenêtre est pour windev comme une procédure ou une fonction (au choix si on fait un renvoyer ou non)
donc dans votre cas deux possibilités soit la fenêtre est une procédure et ne renvoie rien soit c'est une fonction et elle renvoie un résultat
dans votre cas par exemple vous pouvez faire quelque chose du type
MonChamps est un champs de la fenêtre 1
dans maFenetre2 qui reçoit un paramètre vous pouvez lui ajouter un deuxième paramètre qui sera de type résultat et qui prendra la valeur résultante de l'action
- Code: Tout sélectionner
Procedure maFenetre2(p_param, p_resultat)
// dans le code de la fenetre quelque part vous faites
p_resultat = SAI_monChamps
ainsi et comme windev passe les paramètres par adresse dans la fenetre1 si le champs s'appelle SAI_CHAMPS
on peut faire quelque part ouvre(MaFenetre2(MonParam,SAI_CHAMPS)
ou autre solution si vous n'avez qu'un parametre ou une valeur a récupèrer dans le code de fermeture de fenetre2 il suffit de faire
RENVOYER(SAI_monChamps)
et dans fenetre1 de faire
- Code: Tout sélectionner
SAI_CHAMPS = ouvre(MaFenetre2(MonParam)
mais cette partie des paramètres est très importante c'est pour cela qu'en université d'informatique on y passe a peu pres 3 / 4 mois dessus pour bien comprendre comment cela fonctionne ensuite suivant le langage tout n'est qu'histoire de syntaxe car tous les langages fonctionnent sur ce prototype pour les paramètres