Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME IV. Les librairies internes

2. La librairie scr4o

2.3 Emploi des Actions utilisateur

2.3.1 Actions utilisateur

Les actions utilisateurs sont des fonctions C qui peuvent être définies en cours d'exécution du programme ou par le mot clé UACT suivi du numéro de l'action utilisateur dans les ACTIONS SCR.

    ACTION {UACT 1}

L'objectif est de permettre l'installation de fonctions différentes suivant les conditions de l'exécution : une delete_fn dans un ISAM peut être modifiée en cours d'exécution, une action dans un MENU de même, etc.

Un maximum de 100 fonctions utilisateurs peuvent être définies de la sorte.

Le processus doit être effectué comme suit :

1. Enregistrer par ACT_ufn_install() la fonction à exécuter et ses paramètres

            ACT_ufn_install(fn, client_int, client_ptr)

Cette fonction retourne un "handle" qui doit être retenu pour deux raisons : il faut installer cette valeur dans l'action visée et éventuellement désinstaller l'action en cours de programme. Le Handle a une valeur comprise entre 3900 et 3999.

Si on souhaite exécuter l'ancienne action, il faut d'abord en extraire le numéro (is->is_delete_act) et l'exécuter dans la fonction utilisateur par la fonction ACT_exec_nu(num); Un handle négatif indique que tous les handles sont occupés.

On peut aussi souhaiter que l'action exécute la fonction désirée, mais aussi une autre action. On utilisera pour cela la fonction suivante :

            ACT_ufn_install_old(old_handle, fn, client_int, client_ptr)

où old_handle peut par exemple être

                SCR_NU(action_name)

ou l'ancienne action d'un évènement comme par exemple

                is->is_rewrite_act

2. Installer l'action dans l'objet SCR visé

Par exemple,

           is->is_delete_act = handle;

A partir de ce moment, la nouvelle action s'exécutera en remplacement de l'ancienne lors du delete d'un record de is (ou en complément de celle-ci)

3. Exécution de l'action

Cette action est exécutée automatiquement dans le déroulement normal du programme, mais peut aussi l'être par la fonction

         ACT_exec_nu(handle).

4. Désinstallation

Pour désinstaller l'action, et libérer le handle, il suffit de remettre l'ancien handle dans la structure :

           is->is_delete_act = old_handle;

et de libérer le handle par la fonction

            ACT_ufn_uninstall(handle);

L'ancien handle passé comme paramètre de ACT_ufn_install_old peut être retrouvé par la fonction

            ACT_ufn_get_old(handle)

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be