Tjenesten ScriptForge.Timer (stopur)

Tjenesten Timer (stopur) måler den tid, det tager at køre brugerscripts.

En Timer Måler varigheder. Det kan være:

Tipikon

Varigheder udtrykkes i sekunder med en præcision på 3 decimalcifte (tusindedele af et sekund). En varighed på 12,345 betyder 12 sekunder og 345 tusindedele


Kald af tjeneste

Før brug af tjenesten Timer skal biblioteket ScriptForge være indlæst eller importeret:

note

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService


I Basic

Eksemplet herunder opretter et Timer (stopur)-objekt kaldet myTimer (mit stopur) og starter det øjeblikkeligt.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    ' Timeren starter straks, når det andet argument = True (Sand), standard = False (Falsk)
  

Det anbefales at frigøre ressourcer efter brug:


    Set myTimer = myTimer.Dispose()
  
I Python

    from scriptforge import CreateScriptService
    myTimer = CreateScriptService("Timer", start = True)
    # ...
    myTimer = myTimer.Dispose()
  

Egenskaber

Navn

Readonly (skrivebeskyttet)

Type (type)

Beskrivelse

Duration

Yes (ja)

Double

Den faktisk løbende tid, der er gået fra start eller mellem start og stop (medregner ikke tid under pauser)

IsStarted

Yes (ja)

Boolean

True (sand), når timeren er startet eller eller på pause

IsSuspended

Yes (ja)

Boolean

True (sand), når timeren er startet eller på pause

SuspendDuration

Yes (ja)

Double

Den faktiske tid under pauser siden start eller mellem start og stop

TotalDuration

Yes (ja)

Double

Den faktiske tid, der er gået efter start eller mellem start og stop (medregnet pauser og løbende tid)


Tipikon

Bemærk, at egenskaben TotalDuration svarer til at opsummere egenskaberne Duration og (varighed) SuspendDuration (suspender_varighed).


Metoder

Ikke alle metoder kræver argumenter og returnerer en Boolean (Boolsk) værdi.

Hvis den returnerede værdi er False (falsk), er der ikke sket noget.

Navn

Beskrivelse

Returned value (returneret værdi)

Continue

Genoptager Timeren, hvis den har været stoppet

False (falsk), hvis timeren ikke er på pause

Restart

Afslutter Timeren og kasserer dens aktuelle egenskabsværdier, mens den genstartes som en ny, ren Timer

False (falsk), hvis timeren er deaktiveret

Start

Starter en ny, ren timer

False (falsk), hvis timeren allerede er startet

Suspend

Sætter en løbende timer på pause

False (falsk), hvis timeren ikke er startet eller allerede er sat på pause

Terminate

Stopper en løbende timer

False (falsk), hvis timeren hverken er startet eller sat på pause


Eksempel:

Eksemplerne herunder i Basic og Python illustrerer brugen af mtoder og egenskaber i tjenesten Timer (tidstager).

I Basic

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    'Tiden, der går, mens dialogfeltet er åbent, regnes som pausetid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    'Tiden, der går, mens dialogfeltet er åbent, regnes som løbende tid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    'Viser den endelige tidstagning
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Hvis du kalder metoden Terminate (afslut) og efterfølgende kalder metoden Continue (fortsæt) fortsættes tidtagningen ikke. Hvis du ligeledes kalder metoden Start, efter at en timer er afsluttet, genstartes den, som om den var en ren, ny timer.


I Python

    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))
  
note

Be aware that the Wait function in BASIC takes in a duration argument in milliseconds whereas the sleep function in Python uses seconds in its argument.


Arbejde med flere timere

Det er muligt at instantiere flere forekomster af tjenesten Timer (stopur) parallelt, hvad der giver fleksibilitet i tidtagningen i forskellige dele af koden.

Det følgende eksempel illustrerer, hvor der oprettes forekomster af objektet Timer (stopur) og startes separat.

I Basic

    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    'Starter myTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Starter myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    'Afslutter begge timere
    myTimerA.Terminate()
    myTimerB.Terminate()
  
I Python

    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()
  
warning

Alle ScriptForge Basic-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


Støt os venligst!