PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Héritage de variables fenêtres internes
Héritage de variables fenêtres internes
Started by Esteban BERNARD, Mar., 23 2017 12:03 PM - 7 replies
Registered member
24 messages
Popularité : +2 (2 votes)
Posted on March, 23 2017 - 12:03 PM
Bonjour à tous,

Je viens de démarrer un stage dans une entreprise qui utilise Windev 22 et l'on m'a chargé de modifier une fenêtre existante. Afin de l'améliorer je voudrais déplacer un champs image dans une fenêtre interne. Cependant ce champs image contient du code qui agit sur des variables globales de la fenêtre d'où il vient. Je me retrouve donc avec une montagne d'erreur de procédures et variables non déclarées. Y-a-t-il un moyen pour que cette fenêtre interne ait connaissance des variables globales de mon autre fenêtre ?

Merci d'avance et si ce n'est pas assez clair n'hésitez pas à me demander des précisions,

Esteban
Registered member
256 messages
Popularité : +29 (29 votes)
Posted on March, 23 2017 - 12:59 PM
Bonjour

Si vous voulez "factoriser" un ou plusieurs champs dans une fenêtre interne, c'est pour pouvoir réutiliser cette dernière dans une autre fenêtre.
Si vous créez une dépendance de la fenêtre interne vers la fenêtre hôte, la réutilisation sera plus complexe.

Il faut donc plutôt privilégier une évolution de l'architecture :
- les variables qui sont plutôt liés au fonctionnement du champ image devraient être déplacées dans la fenêtre interne
- les variables qui sont des paramètres du champ image peuvent être passés en paramètre à la fenêtre interne grâce à la fonction ChangeFenêtreSource
- il est également possible d'appeler une procédure de la fenêtre interne depuis la fenêtre pour lui transmettre les informations nécessaire
Registered member
24 messages
Popularité : +2 (2 votes)
Posted on March, 23 2017 - 3:06 PM
Tout d'abord merci pour cette réponse rapide.

En suite je tiens à expliquer un peu plus mon objectif. Mon but en passant par une fenêtre interne est de pouvoir l'utiliser dans un champ onglet dynamique afin de pouvoir exécuter plusieurs fois le traitement qui s'effectue actuellement dans l'image et ce en parallèle et autant de fois que voulu par l'utilisateur.

A la lueur de votre expérience est-ce une bonne idée ?
Posted on March, 23 2017 - 3:27 PM
Perso, je préfèrerai faire des champclone et travailler avec les
indirections, dans un cas comme celui la

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/23/2017 à 9:06 AM, Esteban BERNARD a écrit :
Tout d'abord merci pour cette réponse rapide.

En suite je tiens à expliquer un peu plus mon objectif. Mon but en
passant par une fenêtre interne est de pouvoir l'utiliser dans un champ
onglet dynamique afin de pouvoir exécuter plusieurs fois le traitement
qui s'effectue actuellement dans l'image et ce en parallèle et autant de
fois que voulu par l'utilisateur.
A la lueur de votre expérience est-ce une bonne idée ?
Registered member
24 messages
Popularité : +2 (2 votes)
Posted on March, 23 2017 - 3:29 PM
En effet, je ne vois pas comment passer des paramètres à la fenêtre interne si celle-ci est ouverte automatiquement par le composant onglets dynamiques...
Registered member
24 messages
Popularité : +2 (2 votes)
Posted on March, 23 2017 - 4:15 PM
Bonjour M. Harari,

autant je voyais ce que voulais dire Yann (mon précédent message était en rapport avec le siens et non le votre) autant je ne vois pas du tout ce que vous voulez dire ni comment utiliser champClone et les indirections.
Merci toutefois de vous intéresser à mon problème.
Posted on March, 23 2017 - 9:58 PM
Coucou,

Tu peut detourner l'event et passer les parametres que tu veut a la fenetre interne ouvert par l'onglet dynamique

Charly
Registered member
24 messages
Popularité : +2 (2 votes)
Posted on March, 24 2017 - 9:15 AM
Merci à tous, j'ai en effet trouvé comment faire et comment utiliser les indirections :)