|
|
|
|
|
- Différences entre les fonctions Timer et TimerSys
- Traitement d'appel du timer
- Opérations bloquantes ou non
- Temps d'exécution de la procédure
- Timer et fenêtres soeurs
- Timer et Thread
- Timer et service Windows
TimerSys (Fonction) En anglais : TimerSys Appelle périodiquement et automatiquement une procédure du WLangage. Utilisée dans la procédure, la fonction TimerSys permet d'identifier le timer qui a lancé la procédure. On appelle timer la séquence d'appel périodique d'une procédure. Cet appel périodique sera stoppé grâce à la fonction FinTimerSys.
// Procédure permettant l'affichage régulier de l'heure dans SAI_Heure1 PROCÉDURE Affiche_Heure() SAI_Heure1 = HeureSys()  // Traitement à l'ouverture de la fenêtre // Affiche_Heure sera appelée à chaque seconde SI TimerSys("Affiche_Heure", 100, 1) = 0 ALORS Erreur("Création du timer impossible") FIN Syntaxe
Lancer périodiquement une procédure Masquer les détails
<Résultat> = TimerSys(<Procédure WLangage> , <Période> [, <Numéro>])
<Résultat> : Entier - Numéro du timer ouvert (<Numéro> si ce paramètre a été précisé),
- 0 si le timer n'a pas pu être ouvert.
<Procédure WLangage> : Nom de procédure Nom de la procédure WLangage à lancer périodiquement.Remarque : Si ce paramètre correspond au nom d'une procédure interne, le nom de la procédure interne ne doit pas être entre guillemets. <Période> : Entier Temps (en centièmes de seconde) entre deux appels à la procédure par timer. La précision de la période dépend de l'état d'attente du système. Ce paramètre peut correspondre à : - un entier correspondant au nombre de centièmes de seconde,
- une variable de type Durée,
- l'indication directe de la durée (par exemple 1 s ou 10 ms).
<Numéro> : Entier optionnel Numéro imposé du timer. Si ce paramètre est précisé, le numéro du timer sera le numéro choisi. Si ce numéro correspond à un timer existant, il sera arrêté et remplacé par le nouveau timer. <Résultat> : Entier Numéro du timer qui a appelé la procédure en cours. Remarques Différences entre les fonctions Timer et TimerSys - La fonction Timer permet d'utiliser un timer géré par WINDEV ou WINDEV Mobile. Dans ce cas, la fréquence d'appel est calculée à partir du moment où l'appel du timer a été effectué.
- La fonction TimerSys permet d'utiliser un timer géré par le système. Dans ce cas, la fréquence d'appel est calculée à partir de l'instant de la fin de l'exécution de la procédure.
Conseil : Dans la majorité des cas, utilisez la fonction TimerSys. En effet, la fonction Timer consomme plus de ressources que la fonction TimerSys et ne fonctionne que lorsque des fenêtres WINDEV/WINDEV Mobile sont en cours (le timer s'arrête si une boîte de message est affichée). Traitement d'appel du timer - Code de projet :
- Si la fonction TimerSys est appelée dans un code du projet, le timer est associé au projet. Le timer est interrompu par la fonction FinTimerSys et par la fin de l'exécution de l'application. La procédure appelée par le timer doit être :
- soit une procédure globale du projet :
TimerSys("<procédure globale>", 1000) - soit une méthode statique d'une classe :
TimerSys("<classe>::<méthode statique>", 1000)
- Si la fonction TimerSys est utilisée dans le traitement d'ouverture du projet et si aucune fenêtre n'est ouverte, le timer sera valide sur tout le projet. Il est en attente et sera déclenché automatiquement dès qu'une fenêtre sera ouverte ou lors des appels à la fonction Multitache.
- Code d'une fenêtre, d'un champ ou d'une procédure local :
Si la fonction TimerSys est appelée dans un code d'une fenêtre, d'un des champs de la fenêtre ou d'une procédure locale de la fenêtre, le timer est associé à la fenêtre. Le timer est interrompu par la fonction FinTimerSys et par la fermeture de la fenêtre. La procédure appelé par le timer doit être :- soit une procédure locale de la fenêtre :
TimerSys("<procédure locale>", 1000) - soit une procédure globale du projet :
TimerSys("<procédure globale>", 1000) - soit une méthode statique d'une classe :
TimerSys("<classe>::<méthode statique>", 1000)
- Code d'une méthode statique de classe :
Si la fonction TimerSys est appelée dans une méthode statique de classe, le timer est associé à la classe. Le timer est interrompu par la fonction FinTimerSys et par la fin d'exécution de l'application. La procédure appelée par le timer doit être :- soit une méthode statique de la classe :
TimerSys("::<méthode statique>", 1000) - soit une méthode statique d'une autre classe :
TimerSys("<classe>::<méthode statique>", 1000) - soit une procédure globale du projet :
TimerSys("<procédure globale>", 1000)
- Code d'une méthode d'un objet :
Si la fonction TimerSys est appelée dans une méthode d'un objet, le timer est associé à l'objet. Le timer est interrompu par la fonction FinTimerSys, par la libération de l'objet et par la fermeture de la fenêtre. La procédure appelée par le timer doit être :- soit une méthode non statique de l'objet :
TimerSys(":<méthode>", 1000) - soit une méthode statique de la classe de l'objet :
TimerSys("::<méthode statique>", 1000) - soit une méthode statique d'une autre classe :
TimerSys("<classe>::<méthode>", 1000) - soit une procédure globale du projet :
TimerSys("<procédure globale>", 1000)
Opérations bloquantes ou non - Un timer n'est pas bloqué par l'ouverture des menus, l'ouverture d'une fenêtre, l'ouverture des fenêtres des fonctions Avertissement, Confirmer, Erreur, Info, OKAnnuler et OuiNon.
- Un timer est bloqué par les déplacements et les agrandissements de fenêtres.
Temps d'exécution de la procédure Si le temps de traitement de la procédure appelée par le timer est supérieur au temps demandé entre chaque appel de la procédure, les appels du timer ne s'empilent pas : il n'y aura qu'un seul appel en attente.
Liste des exemples associés :
|
Exemples didactiques (WINDEV) : WD Ecran de veille
[ + ] Cet exemple illustre la réalisation d'un économiseur d'écran avec les fonctions WLangage. Dans cet exemple, nous abordons les principaux thèmes suivants : 1/ l'appel périodique d'une procédure (les "timers") 2/ la gestion des événements Windows 3/ les fonctions système (appel d'API Windows) Pour utiliser l'écran de veille : - Renommer l'exécutable (.EXE) en .SCR - Copier le fichier dans le répertoire de Windows (Ex: C:\WINDOWS) - Ouvrir la fenêtre de propriétés d'affichage du bureau - Choisir l'onglet "Ecran de Veille" - Sélectionnez l'écran de veille généré avec WINDEV
|
|
Exemples unitaires (WINDEV) : Les alarmes
[ + ] Mise en place d'une alarme pour afficher un message d'alerte dans la barre de titre de la fenêtre active (quelle que soit l'application). Nous abordons les principaux thèmes suivants : 1/ Les fonctions système (récupération du handle d'une fenêtre) 2/ Le déclenchement d'un traitement selon une fréquence donnée (les timers)
|
|
Exemples didactiques (WINDEV) : WD Qui bloque
[ + ] Cet exemple montre comment signaler aux utilisateurs d'une base de données HFSQL en réseau "qui" bloque un enregistrement inaccessible. Dans cet exemple, nous abordons les principaux thèmes suivants : 1/ la gestion des accès concurrentiels 2/ le rafraîchissement automatique par timer 3/ la gestion d'un fichier "système" pour mémoriser des informations sur les verrous posés. Résumé de l'exemple livré avec WINDEV : Cet exemple réalisé avec WINDEV est composé de 2 projets : - WD Qui bloque : application de test gérant un fichier "client" en réseau - WD Superviseur blocages : outil d'aministration pour visualiser les verrous posés et éventuellement forcer un déblocage. Un utilisateur peut avoir conservé une fiche de saisie ouverte depuis un certain temps ; ce qui risque de gêner les autres utilisateurs. Le bouton 'Libérez SVP' permet d'envoyer un message à l'utilisateur concerné pour lui demander de libérer l'enregistrement. Le bouton 'Débloquer !' permet de forcer le déblocage de l'enregistrement. Attention : Cette opération va envoyer un message forçant la fermeture de l'application ayant effectué le blocage.
|
|
Exemples unitaires (WINDEV Mobile) : Gestion des timers
[ + ] Mise en place d'un timer : - démarrer un timer - exécuter un code à chaque appel du timer - arrêter un timer
|
|
Exemples unitaires (WINDEV Mobile) : Les fonctions Chrono
[ + ] Utilisation des fonctions WLangage "Chrono". Ces fonctions permettent de calculer le temps écoulé entre le début (Fonction ChronoDébut) et la fin (Fonction ChronoFin)
|
|
Android (WINDEV Mobile) : Android Inventaire
[ + ] Cette application permet de réaliser les inventaires et d'enregistrer les résultats dans une base de données.
|
|
Exemples unitaires (WEBDEV) : Gestion des timers
[ + ] Mise en place d'un timer : - Démarrage d'un timer - Exécution d'un code à chaque appel du timer - Arrêt d'un timer
|
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|