09 juillet 2007

Pourquoi le code de modification d'un champ s'exécute à l'ouverture d'une fenêtre ?

Dans l'ordre normal des choses, l'ouverture d'une fenêtre provoque l'enchaînement des traitements suivants :
- code de déclaration des globales de la fenêtres,
- code d'initialisation successives des différents champs,
- et enfin le code d'initialisation de la fenêtre.

Alors qu'elle peut être l'option qui provoque l'exécution du code de modification d'un des champs, avant le code d'initialisation de la fenêtre ?

C'est l'option "Mémoriser la valeur" du détail de la description des champs. En effet, j'ai bataillé un moment pour trouver pourquoi j'avais un onglet dont le code était appelé de la sorte. C'est comme tout, une fois qu'on le sait, cela devient simple et évident. En effet, comme le système restaure un choix de l'utilisateur de l'application, il exécute également le code qui avait été provoqué par ce choix.

2 commentaires:

Anonyme a dit…

J'ai aussi eu cette difficulté il y a quelques temps et j'avais posé la question au ST.
Voici leur réponse :

Cette information est disponible dans la documentation de WinDev. Dans l’aide en ligne avec les mots clés « persistance des données », vous pourrez lire ceci :

« Remarque : L'utilisation de cette option provoque l'exécution du code "A chaque modification" lors de l'initialisation du champ. » :

Persistance des données :

Remarque : L'utilisation de cette option provoque l'exécution du code "A chaque modification" lors de l'initialisation du champ. La propriété Modifie du champ est modifiée (NomChamp..Modifie = Vrai).

Elian Lacroix a dit…

En effet on trouve l'information par ce biais, une fois que l'on connait la solution !

J'ai utilisé le lien "Envoyez vos commentaires sur cette page d'aide" de l'aide, pour suggérer à PC SOFT que l'information soit également accessible par l'entrée "Fenêtre, Traitements associés", qui est celle part laquelle j'avais recherché...