LibreOffice 25.2 Hjelp
Tenesta Timer måler kor lang tid det tar å køyra brukarskript.
Ein Timer mæler tidlengd. Det kan vera:
Starta for å visa når tidtakinga byrjar.
Suspendert for å laga pause i målinga under køyringa.
Gjenoppteken for å halda fram mælinga etter at «Timer» vart suspendert.
Starta på nytt. Dette vil avbryta tidlegare målingar og starta Timer frå null.
Tidslengdene vert uttrykte i sekund med ein presisjon på 3 desimalsiffer (millisekund). Ei tidslengd på 12,345 betyr 12 sekund og 345 millisekund
Før du brukar tenesta Timer, må ScriptForge-biblioteket lastast inn eller importerast:
Eksempelet nedanfor lagar eit Timer-objekt kalla myTimer og startar det straks.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Teljaren startar straks når det andre argumentet = Sann, standard = Usann
  Det vert tilrådd å frigjeva ressursar etter bruk:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Namn | Skriveverna | Type | Beskriving | 
|---|---|---|---|
| Duration | Ja | Double | Den faktiske køyretida som har gått sidan start eller mellom start og stopp (tek ikkje med i pausetid) | 
| IsStarted | Ja | Boolean | Sann når «Timer» er starta eller eller sett på pause | 
| IsSuspended | Ja | Boolean | Sann når «Timer» er starta eller sett på pause | 
| SuspendDuration | Ja | Double | Den faktiske tida som har gått medan han var på pause sidan start, eller mellom start og stopp | 
| TotalDuration | Ja | Double | Den faktiske tida som har gått sidan start, eller mellom start og stopp (medrekna pausar og løpande tid) | 
Merk at eigenskapen TotalDuration er det same som å summera eigenskapane Duration og SuspendDuration.
Ikkje alle metodar krev argument og returnerer ein Boolsk verdi.
Viss den returnerte verdien er Usann, har det ikkje skjedd noko.
| Namn | Beskriving | Returnert verdi | 
|---|---|---|
| Continue | Startar Timer igjen viss han har vore stoppa | Usann viss «Timer» ikkje er på pause | 
| Restart | Avsluttar Timer og forkastar gjeldande eigenskapsverdiar, startar på nytt som ein ny, rein Timer | Usann viss «Timer» er inaktiv | 
| Start | Startar ein ny, rein «Timer» | Usann viss «Timer» alt er starta | 
| Suspend | Set ein aktiv «Timer» på pause | Usann viss «Timer» ikkje er starta eller sett på pause | 
| Terminate | Stoppar ein aktiv «Timer» | Usann viss «Timer» korkje er starta eller sett på pause | 
Eksempla nedanfor i Basic og Python viser bruken av metodar og eigenskapar i tenesta Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    ' Tida som går medan dialogvindauget er ope, vert rekna som pausetid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    ' Tida som går medan dialogvindauge er ope vert rekna som løpande tid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    ' Viser den endelege tidtakinga
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Viss du kallar opp metoden Terminate vil ikkje etterfølgjande oppkall av metoden Continue ta opp att tidsmålinga. På same måte vil oppkall av metoden Start etter at «Timer» er avslutta, starta «Timer» på nytt som om han var ein ny, rein «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))
  Ver merksam på at funksjonen Wait i BASIC brukar millisekund for kor lenge han skal vara, medan funksjonen sleep i Python brukar sekund i argumentet.
Det er mulig å setja i gang fleire Timer-tenester parallelt, noko som gjer måling av tid i ulike deler av koden meir fleksibelt.
Eksempelet nedanfor viser korleis det kan setjast opp to Timer-objekt og setja dei i gang dei kvar for seg.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    ' Startar MyTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Startar myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    Avsluttar begge «Timer»
    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()