Déjà évoqué dans un précédent billet, les attributs d'extension sont très utiles et permettent de considérablement simplifier l'écriture de traitements WLangage, tout en améliorant la lisibilité du code.
Combinés avec l'utilisation de procédures internes, les attributs d'extension permettent par exemple de regrouper dans un seul code un ensemble de tâches. Sans procédures internes, le même traitement aurait nécessité de créer plusieurs procédures, définir des automatismes...
Voici un exemple très simple à copier/coller dans un code de clic bouton d'une application WINDEV :
BTN_TEST..Etat = Grisé JAUGE_Infinie est un Champ <- ChampCrée("JAUGE_Infinie" + DonneGUID(),typJaugeInfinie,MoiMême..X,MoiMême..Y,MoiMême..Largeur,MoiMême..Hauteur,Vrai) JAUGE_Infinie..Opacité = 25 JAUGE_Infinie..Altitude = BTN_TEST..Altitude+1
TraitementLong()
PROCEDURE INTERNE TraitementLong () <thread>
ThreadPause(5 s)
FinTraitementLong() FIN
PROCEDURE INTERNE FinTraitementLong <thread principal>
BTN_TEST..Etat = Actif ChampSupprime(JAUGE_Infinie) FIN
A noter que l'attribut <thread principal> ne s'applique naturellement pas dans un site WEBDEV, puisque l'affichage est géré "côté navigateur". L'affichage d'une jauge dans un site web se ferait avec la démarche suivante :
- le code navigateur d'un bouton :
- affiche la jauge ou met en évidence le lancement d'un traitement (popup...),
- lance le traitement via une procédure ajax du serveur avec la fonction AjaxExecuteAsynchrone,
- la procédure navigateur 'callback" rappelée après le traitement serveur par AjaxExecuteAsynchrone, masquer la jauge (ferme la popup...).
|