LibreOffice 25.2 Βοήθεια
Η υπηρεσία Timer μετρά τον χρόνο που απαιτείται για την εκτέλεση των σεναρίων χρήστη.
Ένα Timer (Χρονόμετρο) μετρά τις durations (διάρκειες). Μπορεί να είναι:
Started (εκκίνηση), για να υποδείξετε πότε θα ξεκινήσει η μέτρηση του χρόνου.
Suspended (Σε αναστολή), για παύση της μέτρησης του χρόνου λειτουργίας.
Resumed (Συνέχεια), για να συνεχιστεί η παρακολούθηση του χρόνου εκτέλεσης μετά την αναστολή του χρονοδιακόπτη.
Restarted (Επανεκκίνηση), η οποία θα ακυρώσει τις προηγούμενες μετρήσεις και θα ξεκινήσει το Timer στο μηδέν.
Οι διάρκειες εκφράζονται σε δευτερόλεπτα με ακρίβεια 3 δεκαδικών ψηφίων (χιλιοστά του δευτερολέπτου). Μια τιμή διάρκειας 12.345 σημαίνει 12 δευτερόλεπτα και 345 χιλιοστά του δευτερολέπτου
Πριν να χρησιμοποιήσετε την υπηρεσία Timer, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:
Το παρακάτω παράδειγμα δημιουργεί ένα αντικείμενο Timer με το όνομα myTimer και το ξεκινά αμέσως.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'Ο χρονοδιακόπτης ξεκινά αμέσως όταν το δεύτερο όρισμα = True, προεπιλογή = False
  Συνιστάται η απελευθέρωση πόρων μετά τη χρήση:
    Set myTimer = myTimer.Dispose()
  
    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  | Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή | 
|---|---|---|---|
| Duration | Ναι | Double | Ο πραγματικός χρόνος λειτουργίας που έχει παρέλθει από την έναρξη ή μεταξύ έναρξης και διακοπής (δεν λαμβάνεται υπόψη ο χρόνος αναστολής) | 
| IsStarted | Ναι | Boolean | True όταν ο χρονοδιακόπτης ξεκινά ή αναστέλεται | 
| IsSuspended | Ναι | Boolean | True όταν ο χρονοδιακόπτης ξεκινά και αναστέλεται | 
| SuspendDuration | Ναι | Double | Ο πραγματικός χρόνος που παρήλθε κατά την αναστολή από την έναρξη ή μεταξύ έναρξης και διακοπής | 
| TotalDuration | Ναι | Double | Ο πραγματικός χρόνος που έχει παρέλθει από την έναρξη ή μεταξύ εκκίνησης και διακοπής (συμπεριλαμβανομένων των αναστολών και του χρόνου λειτουργίας) | 
Σημειώστε ότι η ιδιότητα TotalDuration ισοδυναμεί με την άθροιση των ιδιοτήτων Duration και SuspendDuration.
Όλες οι μέθοδοι δεν απαιτούν ορίσματα και επιστρέφουν μια τιμή Boolean.
Εάν η επιστρεφόμενη τιμή είναι False, τότε δεν συνέβη τίποτα.
| Όνομα | Περιγραφή | Επιστρεφόμενη τιμή | 
|---|---|---|
| Continue | Συνεχίζει το Timer (Χρονόμετρο) εάν έχει ανασταλεί | False εάν το χρονόμετρο δεν είναι σε αναστολή | 
| Restart | Τερματίζει το Timer και απορρίπτει τις τρέχουσες τιμές ιδιοτήτων του, επανεκκινώντας ως νέο καθαρό Timer | False εάν το χρονόμετρο είναι ανενεργό | 
| Start | Ξεκινά ένα νέο καθαρό χρονόμετρο | False εάν το χρονόμετρο έχει ήδη ξεκινήσει | 
| Suspend | Αναστέλλει ένα εκτελούμενο χρονόμετρο | False εάν το χρονόμετρο δεν έχει ξεκινήσει ή έχει ήδη ανασταλεί | 
| Terminate | Διακόπτει ένα χρονόμετρο που λειτουργεί | False εάν το χρονόμετρο δεν έχει ξεκινήσει ούτε έχει ανασταλεί | 
Τα παρακάτω παραδείγματα σε Basic και Python επεξηγούν τη χρήση των μεθόδων και των ιδιοτήτων στην υπηρεσία Timer.
    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Ο χρόνος που έχει παρέλθει όσο είναι ανοιχτό το πλαίσιο διαλόγου θα υπολογίζεται ως χρόνος σε αναστολή
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Ο χρόνος που έχει παρέλθει όσο είναι ανοιχτό το πλαίσιο διαλόγου θα υπολογίζεται ως χρόνος εκτέλεσης
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Εμφανίζει τις μετρήσεις του τελικού χρόνου
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  Εάν καλέσετε τη μέθοδο Terminate (Τερματισμός), οι επόμενες κλήσεις για τη μέθοδο Continue (Συνέχεια) δεν θα συνεχίσουν τη μέτρηση του χρόνου. Ομοίως, μετά τον τερματισμό ενός χρονομέτρου, η κλήση της μεθόδου Start (Έναρξη) θα τον επανεκκινήσει σαν να ήταν ένα καθαρό νέο χρονόμετρο.
    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))
  Λάβετε υπόψη ότι η συνάρτηση Wait στη BASIC λαμβάνει ένα όρισμα διάρκειας σε χιλιοστά του δευτερολέπτου, ενώ η συνάρτηση sleep στην Python χρησιμοποιεί δευτερόλεπτα στο όρισμά της.
Είναι δυνατή η παράλληλη δημιουργία πολλαπλών υπηρεσιών Timer, γεγονός που παρέχει ευελιξία στη μέτρηση του χρόνου σε διαφορετικά μέρη του κώδικα.
Το παρακάτω παράδειγμα δείχνει πώς να δημιουργήσετε δύο αντικείμενα Timer και να τα ξεκινήσετε ξεχωριστά.
    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Εκκινεί το myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Εκκινεί το myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Τερματισμός και των δύο χρονομέτρων
    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()