LibreOffice 25.2 Hjelp
Tjenesten Timer måler hvor lang tid det tar å kjøre brukerskript.
En Timer måler varigheter. Som kan være:
Startet, for å indikere når du skal begynne å måle tid.
Suspendert, for å pause måling av kjøretid.
Gjenopptatt, for å fortsette å spore kjøretid etter at timeren er suspendert.
Startet på nytt, noe som vil avbryte tidligere målinger og starte Timeren på null.
Varighetene er uttrykt i sekunder med en presisjon på 3 desimalsiffer (millisekunder). En varighetsverdi på 12,345 betyr 12 sekunder og 345 millisekunder
Før du bruker Timer-tjenesten, må ScriptForge-biblioteket lastes eller importeres:
Eksemplet nedenfor oppretter et Timer-objekt kalt myTimer og starter det umiddelbart.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Telleren starter umiddelbart når det andre argumentet = Sann, default = Usann
  Det anbefales å frigjøre ressurser etter bruk:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Navn | Skrivebeskyttet | Type | Beskrivelse | 
|---|---|---|---|
| Duration | Ja | Double | Den faktiske kjøretiden som har gått siden start eller mellom start og stopp (tar ikke med i suspendert tid) | 
| IsStarted | Ja | Boolean | Sann når tidtakeren er startet eller suspendert | 
| IsSuspended | Ja | Boolean | Sann når tidtakeren er startet og suspendert | 
| SuspendDuration | Ja | Double | Den faktiske tiden som har gått mens den er suspendert siden start eller mellom start og stopp | 
| TotalDuration | Ja | Double | Den faktiske tiden som har gått siden start eller mellom start og stopp (inkludert suspensjoner og kjøretid) | 
Merk at egenskapen TotalDuration tilsvarer å summere egenskapene Duration og SuspendDuration.
Alle metoder krever ikke argumenter og returnerer en boolsk verdi.
Hvis den returnerte verdien er Usann, har ingenting skjedd.
| Navn | Beskrivelse | Returnert verdi | 
|---|---|---|
| Continue | Gjenopptar Timeren hvis den har blitt suspendert | Usann hvis tidtakeren ikke er suspendert | 
| Restart | Avslutter Timeren og forkaster gjeldende egenskapsverdier, og starter på nytt som en ny ren Timer | Usann hvis tidtakeren er inaktiv | 
| Start | Starter en helt ny timer | False hvis tidtakeren allerede er startet | 
| Suspend | Suspenderer en løpende timer | Usann hvis tidtakeren ikke er startet eller allerede er suspendert | 
| Terminate | Stopper en løpende timer | Usann hvis tidtakeren verken er startet eller suspendert | 
Eksemplene nedenfor i Basic og Python illustrerer bruken av metodene og egenskapene i Timer-tjenesten.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Tiden som har gått mens dialogboksen er åpen, vil bli regnet som suspendert tid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Tiden som har gått mens dialogboksen er åpen, vil bli regnet som kjøretid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Viser de siste tidsmålingene
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Hvis du kaller Terminate-metoden, vil ikke påfølgende kall for Fortsett-metoden gjenoppta tidsmålingen. På samme måte, etter at en tidtaker er avsluttet, vil roping av Start-metoden starte den på nytt som om den var en helt ny 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))
  Vær oppmerksom på at Wait-funksjonen i BASIC tar inn et varighetsargument i millisekunder, mens sleep-funksjonen i Python bruker sekunder i argumentet.
Det er mulig å instansiere flere Timer-tjenester parallelt, noe som gir fleksibilitet i måling av tid i ulike deler av koden.
Følgende eksempel illustrerer hvordan du oppretter to Timer-objekter og starter dem separat.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Starter myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Starter myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    «Avslutt begge tidtakerne
    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()