Aide LibreOffice 25.8
Le service Timer mesure le temps nécessaire à l'exécution des scripts utilisateur.
Un Timer mesure les durées. Ça peut être:
Démarré, pour indiquer quand commencer à mesurer le temps.
Suspendu, pour suspendre la mesure du temps de fonctionnement.
Reprise, pour continuer à suivre le temps d'exécution après la suspension du minuteur.
Redémarré, ce qui annulera les mesures précédentes et démarrera le Timer à zéro.
Les durées sont exprimées en secondes avec une précision de 3 chiffres décimaux (millisecondes). Une valeur de durée de 12,345 signifie 12 secondes et 345 millisecondes
Avant d'utiliser le service Timer, la bibliothèque ScriptForge doit être chargée ou importée :
L'exemple ci-dessous crée un objet Timer nommé myTimer et le démarre immédiatement.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Le minuteur démarre immédiatement lorsque le deuxième argument = True, par défaut = False
  Il est recommandé de libérer des ressources après utilisation :
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Nom | Lecture seule | Type | Description | 
|---|---|---|---|
| Duration | Oui | Double | Le temps de fonctionnement réel écoulé depuis le démarrage ou entre le démarrage et l'arrêt (ne prend pas en compte le temps suspendu) | 
| IsStarted | Oui | Boolean | True lorsque le minuteur est démarré ou suspendu | 
| IsSuspended | Oui | Boolean | True lorsque le minuteur est démarré et suspendu | 
| SuspendDuration | Oui | Double | Le temps réel écoulé pendant la suspension depuis le démarrage ou entre le démarrage et l'arrêt | 
| TotalDuration | Oui | Double | Le temps réel écoulé depuis le démarrage ou entre le démarrage et l'arrêt (y compris les suspensions et le temps de fonctionnement) | 
Notez que la propriété TotalDuration équivaut à la somme des propriétés Duration et SuspendDuration.
Toutes les méthodes ne nécessitent pas d'arguments et renvoient une valeur Boolean.
Si la valeur renvoyée est False, alors rien ne s'est produit.
| Nom | Description | Valeur renvoyée | 
|---|---|---|
| Continue | Reprend le Timer s'il a été suspendu | False si le timer n'est pas suspendu | 
| Restart | Termine le Timer et supprime ses valeurs de propriété actuelles, redémarrant en tant que nouveau Timer propre. | False si l'horloge n'est pas active | 
| Start | Démarre une nouvelle horloge | False si l'horloge est déjà démarrée | 
| Suspend | Suspend une horloge en cours d'exécution | False si l'horloge n'est pas démarrée ou déjà suspendue | 
| Terminate | Arrête une horloge en cours d'exécution | False si l'horloge n'est ni démarrée ni suspendue | 
Les exemples ci-dessous en Basic et Python illustrent l'utilisation des méthodes et propriétés du service Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Le temps écoulé pendant que la boîte de dialogue est ouverte sera compté comme temps suspendu
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Le temps écoulé pendant que la boîte de dialogue est ouverte sera compté comme temps d'exécution
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Affiche les mesures de temps finales
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Si vous appelez la méthode Terminate, les appels suivants pour la méthode Continue ne reprendront pas la mesure du temps. De même, après la fin d'un Timer, l'appel de la méthode Start le redémarrera comme s'il s'agissait d'un nouveau Timer.
    from time import sleep
    bas = CreateScriptService("Basic")
    myTimer.Start()
    sleep(0.5)
    myTimer.Suspend()
    bas.MsgBox("{} {} {}".format(myTimer.Duration, myTimer.SuspendDuration, myTimer.TotalDuration))
    myTimer.Continue()
    sleep(0.5)
    bas.MsgBox("{} {} {}".format(myTimer.Duration, myTimer.SuspendDuration, myTimer.TotalDuration))
    myTimer.Terminate()
    bas.MsgBox("{} {} {}".format(myTimer.Duration, myTimer.SuspendDuration, myTimer.TotalDuration))
  Sachez que la fonction Wait en BASIC prend un argument de durée en millisecondes alors que la fonction sleep en Python utilise des secondes dans son argument.
Il est possible d'instancier plusieurs services Timer en parallèle, ce qui donne de la flexibilité dans la mesure du temps dans différentes parties du code.
L'exemple suivant illustre comment créer deux objets Timer et les démarrer séparément.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Starts myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Starts myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Terminer les deux horloges
    myTimerA.Terminate()
    myTimerB.Terminate()
  
    from time import sleep
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    myTimerA.Start()
    sleep(1)
    bas.MsgBox("{} {}".format(myTimerA.Duration, myTimerB.Duration))
    myTimerB.Start()
    sleep(1)
    bas.MsgBox("{} {}".format(myTimerA.Duration, myTimerB.Duration))
    myTimerA.Terminate()
    myTimerB.Terminate()