Bonjour
Pour mettre en place un mécanisme de callback (procédure appelée sur un évènement) il faut transmettre le nom de la procédure au traitement qui va la lancer.
Utiliser un paramètre de type chaine permet de faire circuler le nom de la procédure jusqu'à l'instruction ExécuteTraitement qui va la déclencher.
Si on utilise un paramètre de type Procédure, l'éditeur de code de WinDev assure la complétion : il propose automatiquement la procédure. Un petit détail qui change la vie du développeur.
Je me rue sur cela et cela fonctionne plutôt bien... jusqu'au ExécuteTraitement.
En effet, ce mécanisme est effectué dans une classe, les procédures sont des membres que l'on affecte avec des méthodes dédiées et déclenchée uniquement si elles ont été fournie.
NB : on passe aussi le nom de la fenêtre qui contient les procédures
J'ai fait un certain nombre d'essais infructueux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 clTest est une Classe cFen est une chaine // alimentée au constructeur ou via sa méthode set... mproc_Evenement1 est une Procédure mproc_Evenement2 est une Procédure FIN PROCEDURE SetCallBack(pProc1 est une procédure = null, pProc2 est une procédure = null) SI pProc1 <> null ALORS :mproc_Evenement1 = pProc1 SI pProc2 <> null ALORS :mproc_Evenement2 = pProc2 FIN PROCEDURE Evenement1() //... traitement... SI :mproc_Evenement1<>null ALORS Executetraitement(:mcFen, :mproc_Evenement1,trtProcédure) Aucune syntaxe ExecuteTraitement ne correspond... FIN
Je sais que le type procédure a été établi pour enchainer les procédure mais vu qu'il permet la complétion en paramètre j'ai imaginé qu'on irait au bout...
Partager