|
Accessibilité MesParamètres à l'ouverture d'une fenêtre |
Débuté par DaVinciCode, 16 mai 2023 17:21 - 3 réponses |
| |
| | | |
|
| |
Membre enregistré 4 messages |
|
Posté le 16 mai 2023 - 17:21 |
Bonjour Supposons la fenêtre FEN_PARAM dont le code de déclaration globale est
PROCÉDURE MaFenêtre(pNom,*) --> fenêtre avec nombre variable de paramètres
Pour les besoins du tests, dans FEN_PARAM, je mets 3 champs de saisie destinés à montrer les paramètres reçus.
Supposons une fenêtre FEN_TEST dans laquelle un bouton ouvre FEN_PARAM avec le code suivant :
Ouvre(FEN_PARAM,"Dupuis","P1","P2")
Lorsque je mets le code suivant dans "Déclarations globales de FEN_PARAM" :
POUR I = 1 _À_ MesParamètres..Occurrence {"sai_param"+I} = MesParamètres[I] FIN
Je récupère bien mes 3 paramètres dans les champs de saisie.
Si je mets le code dans "Fin d'initialisation de FEN_PARAM", mes champs de saisie restent vides.. Si je mets le code dans l'exécution d'un bouton TEST de FEN_PARAM", mes champs de saisie restent vides.
Je n'arrive pas à accéder à MesParamètres ailleurs que dans le code de Déclarations globales de la fenêtre.
Quelqu'un a-t-il une solution ??
Merci d'avance.
DVC |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 878 messages Popularité : +227 (347 votes) |
|
Posté le 16 mai 2023 - 22:08 |
Bonjour, MesParamètres permet, je cite :
de manipuler les paramètres passés à une procédure WLangage
En l'occurrence la procédure est
PROCÉDURE MaFenêtre(pNom,*)
l'initialisation de la fenêtre. MesParamètres n'est pas global hors procédure, les valeurs sont "perdues".
Les événements "Fin d'initialisation de la fenêtre" et à fortiori "Clic sur bouton" ne sont pas dans la procédure. Si tu veux utiliser ces paramètres hors de l'initialisation, tu peux par exemple les stocker dans un tableau Initialisation :
Procedure FEN_Test_param(gsaNom est chaîne,*) gtabParamètres est tableau de Variants
RécupParamètres(gtabParamètres,MesParamètres) Avec :
Procedure RécupParamètres(tabParam est tableau de Variants,*) nIndParam est un entier
POUR nIndParam=1 _À_ MesParamètres..Occurrence TableauAjoute(tabParam,MesParamètres[nIndParam]) FIN
La fonction suivante peut alors être utilisée n'importe où dans la fenêtre ou dans un de ses champs
PROCÉDURE AfficheParam() nIndParam est entier saNomChamp est chaîne
POUR nIndParam = 1 _À_ gtabParamètres..Occurrence saNomChamp=ChaîneConstruit("SAI_Param_%1",nIndParam) {saNomChamp,indChamp}=gtabParamètres[nIndParam] FIN
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 16 mai 2023 - 22:17 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 messages |
|
Posté le 17 mai 2023 - 08:43 |
Merci pour ta réponse.
Mon problème initial était en fait que la fenêtre initiale reçoit un nombre de paramètres variable et que je voulais récupérer ces paramètres pour pouvoir, quelque part dans le code de la fenêtre, les passer à une fenêtre interne, qui n'est pas toujours la même, et dont le nom est dynamiquement assigné à sFI_Name (en fonction du 1er paramètre reçu par la fenêtre), comme ceci :
sFI_Name = MesParamètre[1] ChangeFenêtreSource(CFI_ChampFenêtreInterne, sFI_Name, MesParamètres[2 A])
Chaque fenêtre interne possiblement assignée à sFI_Name étant déclarée avec ses paramètres fixés.
Je vais m'en sortir avec un tableau comme tu le suggères (ou passer finalement mes paramètres via une chaîne de caractères) Mais c'est dommage de ne pas pouvoir exploiter le système 'MesParamètres'. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 286 messages Popularité : +24 (28 votes) |
|
Posté le 18 mai 2023 - 18:48 |
Bonjour à Tous
Il existe la possibilité de "nommer" les paramètres lors de leur affection
MaFenetre(<NomParamètre_02> : "ValeurAffectation", <NomParamètre_01> : 123, <NomParamètre_04> : SAI_Nom) ...
L'ordre des paramètres n'a pas d'importance si ce n'est ceux avec une valeur par défaut doivent se trouver à la fin ...
Bien Cordialement |
| |
| |
| | | |
|
| | | | |
| | |
|