LibreOfficeDev 25.8 Help
De service Timer meet de hoeveelheid tijd die nodig is om gebruikersscripts uit te voeren.
Een Timer meet de tijdsduur. Het kan zijn:
Gestart, om aan te geven wanneer te beginnen met het meten van de tijd.
Opgeschort, om de looptijdmeting te stoppen.
Hervat om de looptijd voort te zetten nadat de timer is onderbroken.
Opnieuw gestart, waardoor eerdere metingen worden geannuleerd en de Timer op nul begint.
De tijdsduur wordt uitgedrukt in seconden met een precisie van 3 decimalen (milliseconden). Een waarde van 12.345 betekent 12 seconden en 345 milliseconden
Voordat de service Timer gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:
Het onderstaande voorbeeld maakt een object Timer met de naam myTimer en start het onmiddellijk.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'De timer start onmiddellijk wanneer het tweede argument = True, standaard = False
  Het wordt aanbevolen om na gebruik middelen vrij te maken:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Name | AlleenLezen | Type | Beschrijving | 
|---|---|---|---|
| Duration | Ja | Double | De werkelijke looptijd die is verstreken sinds de start of tussen start en stop (houdt geen rekening met opgeschorte tijd) | 
| IsStarted | Ja | Boolean | Waar indien de timer wordt gestart of onderbroken | 
| IsSuspended | Ja | Boolean | True indien de timer wordt gestart en onderbroken | 
| SuspendDuration | Ja | Double | De werkelijke verstreken tijd tijdens de onderbreking sinds de start of tussen start en stop | 
| TotalDuration | Ja | Double | De werkelijke verstreken tijd sinds start of tussen start en stop (inclusief schorsingen en looptijd) | 
Merk op dat de eigenschap TotalDuration gelijk is aan het optellen van de eigenschappen Duration en SuspendDuration.
Alle methodes hebben geen argumenten nodig en retourneren een booleaanse waarde.
Als de geretourneerde waarde False is, is er niets gebeurd.
| Name | Beschrijving | Geretourneerde waarde | 
|---|---|---|
| Continue | Hervat de Timer als deze is onderbroken | False als de timer niet is onderbroken | 
| Restart | Beëindigt de Timer en verwijdert de huidige eigenschapswaarden, herstart als een nieuwe schone Timer | False als de timer inactief is | 
| Start | Start een nieuwe timer | False als de timer al is gestart | 
| Suspend | Onderbreekt een lopende timer | False als de timer niet is gestart of al is onderbroken | 
| Terminate | Stopt een lopende timer | False als de timer niet is gestart of onderbroken | 
De onderstaande voorbeelden in Basic en Python illustreren het gebruik van de methodes en eigenschappen in de service Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'De tijd die is verstreken terwijl het dialoogvenster open is, wordt geteld als onderbroken tijd
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'De tijd die is verstreken terwijl het dialoogvenster open is, wordt geteld als looptijd
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Toont de laatste tijdmetingen'
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Als u de methode Terminate aanroept, wordt de tijdmeting niet hervat bij volgende aanroepen van de methode Continue. Evenzo, nadat een Timer is beëindigd, zal het aanroepen van de methode Start deze herstarten alsof het een nieuwe Timer is.
    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))
  Houd er rekening mee dat de functie Wait in BASIC een duurargument in milliseconden opneemt, terwijl de functie sleep in Python seconden in zijn argument gebruikt.
Het is mogelijk om meerdere services Timer parallel te instantiëren, wat flexibiliteit geeft bij het meten van tijd in verschillende delen van de code.
Het volgende voorbeeld illustreert hoe u twee Timer-objecten kunt maken en deze afzonderlijk kunt starten.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Start myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Start myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Beëindig beide timers
    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()