Pomoč LibreOffice 24.8
Storitev Timer meri pretečeni čas ob izvajanju uporabniških skriptov.
Timer meri trajanje. Lahko je:
zagnan, kar nakazuje, da meri čas delovanja;
začasno zaustavljen, t.j. začasno ne meri časa delovanja;
v nadaljevanju, da nadaljuje z merjenjem časa delovanja, potem ko je bil začasno zaustavljen;
ponovno zagnan, kar prekliče prejšnje meritve in zažene časovnik Timer z ničelno vrednostjo.
Trajanja so izražena v sekundah z natančnostjo 3 decimalk (t.j. milisekunde). Vrednost trajanja 12,345 pomeni 12 sekund in 345 milisekund
Pred uporabo storitve Timer je potrebno naložiti ali uvoziti knjižnico ScriptForge:
Spodnji primer ustvari predmet Timer z imenom myTimer in ga nemudoma sproži.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Časovnik (Timer) se zažene takoj, ko je drugi argument = True, privzeto = False
  Priporočamo, da po uporabi sprostite vire:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Ime | Samo za branje | Vrsta | Opis | 
|---|---|---|---|
| Duration | Da | Double | Dejansko pretečeni čas izvajanja od začetka oz. med začetkom in koncem (ne vključuje trajanja morebitnih vmesnih zaustavitev). | 
| IsStarted | Da | Boolean | True, če je merilnik časa zagnan ali začasno ustavljen. | 
| IsSuspended | Da | Boolean | True, če je merilnik časa zagnan in začasno ustavljen. | 
| SuspendDuration | Da | Double | Dejansko pretečeni čas med začasno ustavitvijo ali od začetka do konca. | 
| TotalDuration | Da | Double | Dejansko pretečeni čas od začetka ali od začetka in konca (vključno začasne zaustavitve in pretekli čas) | 
Upoštevajte, da je lastnost TotalDuration ekvivalentna vsoti lastnosti Duration in SuspendDuration.
Vse metode ne zahtevajo argumentov in vrnejo (logično) vrednost Boolean.
Če je vrnjena vrednost False, se ni zgodilo nič.
| Ime | Opis | Vrnjena vrednost | 
|---|---|---|
| Continue | Vključi časomer Timer, če je zaustavljen. | False, če časomer ni zaustavljen. | 
| Restart | Ustavi časomer Timer, opusti trenutne vrednosti lastnosti in ponovno zažene kot novi časomer Timer. | False, če je časomer nedejaven. | 
| Start | Zažene nov časomer. | False, če je časomer že zagnan. | 
| Suspend | Začasno zaustavi tekoči časomer. | False, če časomer ni zagnan ali je že zaustavljen. | 
| Terminate | Ustavi tekoči časomer. | False, če časomer sploh ni zagnan niti ni začasno zaustavljen. | 
Spodnji primeri v Basicu in Pythonu ilustrirajo rabo metod in lastnosti iz storitve Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Pretečeni čas, odkar je pogovorno okno odprto, bo šteto kot čas prekinitve
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Pretečeni čas, odkar je pogovorno okno odprto, bo šteto kot čas delovanja
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Pokaže končne meritve časa
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Če kličete metodo Terminate, nadaljnji klici metode Continue ne bodo nadaljevali z merjenjem časa. Podobno po ustavitvi časomera Timer ga klic metode Start ponovno zažene, kot da gre za nov časomer 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))
  Bodite pozorni, saj funkcija Wait v jeziku BASIC za trajanje sprejme argument v milisekundah, medtem ko funkcija sleep v Pythonu za svoje argumente uporablja sekunde.
Možno je zagnati več vzporednih časomernih storitev Timer, kar omogoča zelo prilagodljivo merjenje časa v različnih delih kode.
Naslednji primer ilustrira izdelavo dveh časomernih predmetov Timer in njun ločen zagon.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Zažene časomer myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Zažene časomer myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Ukine oba časomera
    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()