LibreOffice 25.2 laguntza
Timer zerbitzuak erabiltzaile-scriptak exekutatzeak zenbat denbora behar duen neurtzen du.
Timer batek iraupena neurtzen du. Honakoak egin daitezke zerbitzu horrekin:
Abiarazi, denbora neurtzen noiz hasiko den adierazteko.
Eten, denbora neurtzea pausatzeko.
Berrekin, kronometroa eten ondoren denboraren igarotzea monitorizatzen jarraitzeko.
Berrabiarazi, aurreko neurketak bertan behera uzteko eta Timer zerbitzua zerotik hasteko.
Iraupena segundotan adierazten dira, 3 digitu dezimalen doitasunarekin (milisegundoak). Iraupena 12.345 bada, horrek esan nahi du 12 segundo eta 345 milisegundo direla.
Timer zerbitzua erabiltzeko, ScriptForge liburutegia kargatu edo inportatu behar da:
Beheko adibideak myTimer izeneko Timer objektu bat sortzen du eta berehala abiarazten du.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Kronometroa berehala hasten da bigarren argumentua = True (egia) denean. Balio lehenetsia = False (gezurra)
  Gomendagarria baliabideak askatzea haiek erabili ondoren:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Izena | Irakurtzeko soilik | Mota | Deskribapena | 
|---|---|---|---|
| Duration | Bai | Double | Hasieratik igaro den denbora edo hasieraren eta geldiunearen artean igaro dena (ez du eten-denbora kontuan hartzen) | 
| IsStarted | Bai | Boolean | True (egia) kronometroa hasi bada edo eten bada | 
| IsSuspended | Bai | Boolean | True (egia) kronometroa hasi eta eten bada | 
| SuspendDuration | Bai | Double | Kronometroa etenda egon den denbora hasieratik edo hasieraren eta geldiunearen artean | 
| TotalDuration | Bai | Double | Hasieratik igaro den denbora edo hasieraren eta geldiunearen artean igaro dena (eten-denbora eta exekuzio-denbora kontuan hartuta) | 
Kontuan izan TotalDuration propietatea eta Duration eta SuspendDuration propietateen batuketa baliokideak direla.
Metodoek ez dute argumenturik behar eta Boolean balio bat itzultzen dute.
Itzulitako balioa False bada, orduan ez da ezer gertatu.
| Izena | Deskribapena | Itzulitako balioa | 
|---|---|---|
| Continue | Timer berrabiarazten du, eten bada | False (faltsua) kronometroa ez bada eten | 
| Restart | Timer objektua amaitzen du eta bere uneko propietate-balioak baztertzen ditu, eta Timer berri garbi gisa berrabiarazten du. | False (faltsua) kronometroa inaktibo badago | 
| Start | Kronometro garbi berria abiarazten du | False (faltsua) kronometroa dagoeneko hasi bada | 
| Suspend | Abian dagoen kronometro bat eteten du | False (faltsua) kronometroa hasi ez bada edo dagoeneko eten bada | 
| Terminate | Abian dagoen kronometro bat gelditzen du | False (faltsua) kronometroa ez bada hasi edo eten | 
Beheko adibideetan, Basic eta Python lengoaietan, Timer zerbitzuaren metodo eta propietateen erabilera erakusten da.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Elkarrizketa-koadroa irekita egon den bitartean igaro den denbora eten-denboratzat hartuko da
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Elkarrizketa-koadroa irekita egon den bitartean igaro den denbora exekuzio-denboratzat hartuko da
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Amaierako denbora-neurketak erakusten ditu
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Terminate metodoari deitzen bazaio, Continue metodoari ondoren egindako deiek ez diote denboraren neurketari berrekingo. Modu berean, kronometro bat amaitzen bada, Start metodoak hura berrabiaraziko du kronometro berria bailitzan.
    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))
  Kontuan izan Basic lengoaiako Wait funtzioak milisegundoak erabiltzen dituela iraupena adierazten duen argumentuan eta Python lengoaiako sleep funtzioak, berriz, segundoak erabiltzen dituela.
Posible da Timer zerbitzu anitzen instantziak sortzea paraleloan. Horrek zalutasun gehiago eskaintzen du kodearen toki desberdinetan denbora neurtzeko.
Hurrengo adibidean, bi Timer objektu nola sortu eta bakoitza bere aldetik nola abiarazi erakusten da.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'myTimerA hasten du
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'myTimerB hasten du
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Amaitu kronometro biak
    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()