Nápověda LibreOffice 25.2
Služba Timer měří dobu, kterou trvá spouštění uživatelských skriptů.
Timer měří dobu trvání. Je možné jej:
Spustit a označit tak začátek měřeného času.
Pozastavit během měření běžící času.
Pokračovat v měření poté, co byl Timer pozastaven.
Restartovat a zrušit tak předchozí měření spustit Timer od nuly.
Doby trvání jsou vyjadřovány v sekundách s přesností na 3 desetinná místa (tj. v milisekundách). Doba trvání 12.345 znamená 12 sekund a 345 milisekund.
Před používáním služby Timer je nutné načíst či naimportovat knihovnu ScriptForge pomocí:
V níže uvedených příkladech je vytvořen objekt Timer pojmenovaný myTimer a je ihned spuštěn.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    ' Když je druhý argument True (výchozí je False), začne měření okamžitě
  Po použití se doporučuje uvolnit zdroje:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Název | Pouze pro čtení | Typ | Popis | 
|---|---|---|---|
| Duration | ano | Double | Skutečně uplynulý čas od spuštění nebo mezi spuštěním a zastavením (neuvažuje se čas během pozastavení). | 
| IsStarted | ano | Boolean | True, pokud je měření spuštěno či pozastaveno. | 
| IsSuspended | ano | Boolean | True, pokud je měření spuštěno a zároveň pozastaveno. | 
| SuspendDuration | ano | Double | Čas uplynulý během doby pozastavení měření, a to od spuštění nebo mezi spuštěním a zastavením. | 
| TotalDuration | ano | Double | Čas uplynulý od spuštění nebo mezi spuštěním a zastavením (včetně času pozastavení a času běhu). | 
Vlastnost TotalDuration odpovídá součtu vlastností Duration a SuspendDuration.
Žádná metoda nevyžaduje argumenty a každá vrací booleovskou hodnotu.
Je-li návratovou hodnotou False, metoda nic neprovede.
| Název | Popis | Návratová hodnota | 
|---|---|---|
| Continue | Pokračuje v měření, pokud bylo pozastavené. | False, pokud měření pozastaveno nebylo. | 
| Restart | Ukončí měření, zahodí aktuální hodnoty jeho vlastností a restartuje je jako nové, čisté měření. | False, pokud není měření aktivní. | 
| Start | Spustí nové, čisté měření. | False, pokud je měření již spuštěno. | 
| Suspend | Pozastaví běžící měření. | False, pokud není měření spuštěno nebo je již pozastaveno. | 
| Terminate | Zastaví běžící měření. | False, pokud měření není spuštěno ani pozastaveno. | 
Níže uvedené příklady v Basicu a Pythonu ukazují použití metod a vlastností služby Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    ' Doba uplynulá během otevírání dialogového okna se započítá do pozastaveného času
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    ' Doba uplynulá během otevírání dialogového okna se započítá do času běhu
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    ' Zobrazí výsledné naměřené časy
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Zavoláte-li metodu Terminate, následná volání metody Continue měření času neobnoví. Poté co je měření ukončeno, jej volání metody Start restartuje stejně, jako by se jednalo o nové, čisté měření.
    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))
  Mějte na paměti, že funkce Basicu Wait přijímá v argumentu dobu trvání v milisekundách, zatímco funkce Pythonu sleep používá v argumentu sekundy.
Je možné vytvořit více instancí služby Timer souběžně, což umožňuje flexibilně měřit čas v různých částech kódu.
Následující příklad ukazuje, jak vytvořit dva objekty služby Timer a odděleně je spustit.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    ' Spustí myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Spustí myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Ukončí obě měření
    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()