Hilfe für LibreOffice 24.8
Der Dienst Timer misst die Zeit, die zum Ausführen von Benutzerskripten benötigt wird.
Timer misst die Dauer. Es kann sein:
Gestartet, um anzugeben, wann die Zeitmessung beginnen soll.
Angehalten, um die Messung der Laufzeit zu unterbrechen.
Fortgesetzt, um die Laufzeit fortzusetzen, nachdem der Timer ausgesetzt wurde.
Neu gestartet, wodurch frühere Messungen abgebrochen und der Timer bei Null gestartet wird.
Die Dauer wird in Sekunden mit einer Genauigkeit von 3 Dezimalstellen (Millisekunden) ausgedrückt. Ein Wert von 12,345 bedeutet 12 Sekunden und 345 Millisekunden
Vor der Verwendung des Dienstes Timer muss die Bibliothek ScriptForge geladen oder importiert werden:
Das folgende Beispiel erstellt ein Objekt Timer namens myTimer und startet es sofort.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    ' Der Timer startet sofort, wenn das zweite Argument "True" ist, Standard = False
  Es wird empfohlen, Ressourcen nach der Verwendung freizugeben:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Name | Schreibgeschützt | Typ | Beschreibung | 
|---|---|---|---|
| Duration | Ja | Double | Die tatsächliche Laufzeit, die seit dem Start oder zwischen Start und Stopp verstrichen ist (unterbrochene Zeit wird nicht berücksichtigt) | 
| IsStarted | Ja | Boolean | True, wenn der Timer gestartet oder angehalten wird | 
| IsSuspended | Ja | Boolean | True wenn der Timer gestartet und angehalten wird | 
| SuspendDuration | Ja | Double | Die tatsächlich verstrichene Zeit während der Unterbrechung, seit dem Start oder zwischen Start und Stopp | 
| TotalDuration | Ja | Double | Die tatsächlich verstrichene Zeit seit dem Start oder zwischen Start und Stopp (einschließlich Unterbrechungen und Laufzeit) | 
Beachten Sie, dass die Eigenschaft TotalDuration der Summierung der Eigenschaften Duration und SuspendDuration entspricht.
Alle Methoden benötigen keine Argumente und geben einen booleschen Wert zurück.
Wenn der zurückgegebene Wert False ist, ist nichts passiert.
| Name | Beschreibung | Zurückgegebener Wert | 
|---|---|---|
| Continue | Setzt den Timer fort, wenn er angehalten wurde | False, wenn der Timer nicht angehalten wurde | 
| Restart | Beendet den Timer, verwirft seine aktuellen Eigenschaftswerte und startet als neuer Timer neu | False wenn der Timer inaktiv ist | 
| Start | Startet einen neuen Timer | False wenn der Timer bereits gestartet ist | 
| Suspend | Unterbricht einen laufenden Timer | False, wenn der Timer nicht gestartet oder bereits angehalten wurde | 
| Terminate | Stoppt einen laufenden Timer | False wenn der Timer weder gestartet noch angehalten ist | 
Die folgenden Beispiele in Basic und Python veranschaulichen die Verwendung der Methoden und Eigenschaften im Dienst Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    ' Die verstrichene Zeit, während der Dialog geöffnet war, wird als unterbrochene Zeit gezählt
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    ' Die verstrichene Zeit, während der Dialog geöffnet war, wird als Laufzeit gezählt
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    ' Zeigt die letzten Zeitmessungen
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Wenn Sie die Methode Terminate aufrufen, setzen nachfolgende Aufrufe der Methode Continue die Zeitmessung nicht fort. In ähnlicher Weise wird ein Timer, nachdem er beendet wurde, durch Aufrufen der Methode Start neu gestartet, als wäre er ein neuer 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))
  Beachten Sie, dass die Funktion Wait in BASIC ein Dauerargument in Millisekunden akzeptiert, während die Funktion sleep in Python Sekunden in ihrem Argument verwendet.
Es ist möglich, mehrere Dienste Timer parallel zu instanziieren, wodurch die Zeit in verschiedenen Teilen des Codes flexibel gemessen werden kann.
Das folgende Beispiel veranschaulicht, wie zwei Objekte Timer erstellt und separat gestartet werden.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    ' Startet myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Startet myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Beenden Sie beide 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()