|
|
|
|
- Présentation
- Comment le faire ?
- Exemple
- Fonctions WLangage
Gestion des actions avec Undo/Redo
WINDEV permet de gérer facilement le Undo/Redo dans vos applications grâce aux fonctions ActionXXX. L'utilisateur peut alors simplement utiliser les raccourcis Ctrl + Z et Ctrl + Y pour annuler ou refaire une action. Pour gérer le Undo/Redo dans vos applications WINDEV : - Déclarez les actions à enregistrer dans la pile des actions effectuées grâce à la fonction ActionDo. Cette fonction attend en paramètre le nom de la procédure correspondant à l'action. Cette procédure peut être une procédure locale, globale ou interne.
- Dans le code de la procédure correspondant à l'action à faire, utilisez la fonction ActionDéclareUndo pour définir le code à exécuter pour annuler l'action. Cette fonction attend en paramètre le nom de la procédure à exécuter. Cette procédure peut être une procédure locale, globale ou interne.
- Utilisez si nécessaire les fonctions suivantes :
- ActionRedo pour exécuter la dernière action annulée.
- ActionUndo pour annuler la dernière action effectuée.
Remarques : - Il n'est pas possible d'empiler plusieurs fois les MEMES actions définies par la fonction ActionDo. Chaque action demandée par la fonction ActionDo supprime la précédente action identique. Donc, seule la dernière MEME action peut être annulée.
- Dans le menu contextuel d'un champ, l'option "Annuler" proposée par défaut n'a pas le même effet que la fonction ActionUndo ou que le raccourci Ctrl + Z.
Exemple L'exemple suivant permet de modifier la couleur de fond de deux champs de saisie. Cette action est annulable par la combinaison de touches Ctrl + Z :
ActionDo(FEN_ACTION, Colorie)  PROCÉDURE INTERNE Colorie SAI_Nom.CouleurFond = VertPastel SAI_Prénom.CouleurFond = RougePastel  ActionDéclareUndo(RetourArriere) PROCÉDURE INTERNE RetourArriere SAI_Nom.CouleurFond = CouleurDéfaut SAI_Prénom.CouleurFond = CouleurDéfaut FIN FIN
Pour permettre à l'utilisateur d'annuler plusieurs actions, il suffit d'utiliser plusieurs fois la fonction ActionDo avec des procédures différentes. Par exemple :
ActionDo(FEN_ACTION, Colorie) ActionDo(FEN_ACTION, MemoriseValeur)  PROCÉDURE INTERNE Colorie SAI_Nom.CouleurFond = VertPastel SAI_Prénom.CouleurFond = RougePastel  ActionDéclareUndo(RetourArriere) PROCÉDURE INTERNE RetourArriere SAI_Nom.CouleurFond = CouleurDéfaut SAI_Prénom.CouleurFond = CouleurDéfaut FIN FIN  PROCÉDURE INTERNE MemoriseValeur() SAI_Nom.Note = SAI_Nom SAI_Prénom.Note = SAI_Prénom  ActionDéclareUndo(RetourArriere) PROCÉDURE INTERNE RetourArriere SAI_Nom = SAI_Nom.Note SAI_Prénom = SAI_Prénom.Note FIN FIN
Dans cet exemple, le premier Ctrl + Z annulera la mémorisation des valeurs et le second annulera la coloration des champs. Les fonctions WLangage de gestion des actions sont les suivantes :
| | ActionDéclareUndo | Déclare comment annuler une action ajoutée avec la fonction ActionDo. Cette fonction DOIT être appelée durant l'exécution de la procédure fournie à la fonction ActionDo. | ActionDo | Crée et exécute une action personnalisée (définie par programmation) avec support du "Undo/Redo". | ActionRedo | Exécute la dernière action annulée. | ActionUndo | Annule la dernière action effectuée par l'utilisateur final. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|