Tenesta ScriptForge.Timer

Tenesta Timer mÄler kor lang tid det tar Ä kÞyra brukarskript.

Ein Timer mĂŠler tidlengd. Det kan vera:

Tipsikon

Tidslengdene vert uttrykte i sekund med ein presisjon pÄ 3 desimalsiffer (millisekund). Ei tidslengd pÄ 12,345 betyr 12 sekund og 345 millisekund


Oppkall av teneste

Before using the Timer service the ScriptForge library needs to be loaded or imported:

note

‱ Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‱ Python-skript krev import frĂ„ scriptforge-modulen:
from scriptforge import CreateScriptService


I Basic

Eksempelet nedanfor lagar eit Timer-objekt kalla myTimer og startar det straks.


    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim myTimer As Variant
    myTimer = CreateScriptService("Timer", True)
    'The timer starts immediately when the second argument = True, default = False
  

Det vert tilrÄdd Ä frigjeva resursar etter bruk:


    Set myTimer = myTimer.Dispose()
  
I Python

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

Eigenskapar

Namn

Skriveverna

Type

Beskriving

Duration

Ja

Double

Den faktiske kÞyretida som har gÄtt sidan start eller mellom start og stopp (tek ikkje med i pausetid)

IsStarted

Ja

Boolean

Sann nÄr «Timer» er starta eller eller sett pÄ pause

IsSuspended

Ja

Boolean

Sann nÄr «Timer» er starta eller sett pÄ pause

SuspendDuration

Ja

Double

Den faktiske tida som har gÄtt medan han var pÄ pause sidan start, eller mellom start og stopp

TotalDuration

Ja

Double

Den faktiske tida som har gÄtt sidan start, eller mellom start og stopp (medrekna pausar og lÞpande tid)


Tipsikon

Note that the TotalDuration property is equivalent to summing the Duration and SuspendDuration properties.


Metodar

Ikkje alle metodar krev argument og returnerer ein Boolsk verdi.

Viss den returnerte verdien er Usann, har det ikkje skjedd noko.

Namn

Beskriving

Returnert verdi

Continue

Startar Timer igjen viss han har vore stoppa

Usann viss «Timer» ikkje er pÄ pause

Restart

Avsluttar Timer og forkastar gjeldande eigenskapsverdiar, startar pÄ nytt som ein ny, rein Timer

Usann viss «Timer» er inaktiv

Start

Startar ein ny, rein «Timer»

Usann viss «Timer» alt er starta

Suspend

Set ein aktiv «Timer» pÄ pause

Usann viss «Timer» ikkje er starta eller sett pÄ pause

Terminate

Stoppar ein aktiv «Timer»

Usann viss «Timer» korkje er starta eller sett pÄ pause


Eksempel:

Eksempla nedanfor i Basic og Python viser bruken av metodar og eigenskapar i tenesta Timer.

I Basic

    myTimer.Start()
    Wait 500
    myTimer.Suspend()
    ' Tida som gÄr medan dialogvindauget er ope, vert rekna som pausetid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Continue()
    Wait 500
    ' Tida som gÄr medan dialogvindauge er ope vert rekna som lÞpande tid
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
    myTimer.Terminate()
    ' Viser den endelege tidtakinga
    MsgBox myTimer.Duration & " " & myTimer.SuspendDuration & " " & myTimer.TotalDuration
  
note

Viss du kallar opp metoden Terminate vil ikkje etterfÞlgjande oppkall av metoden Continue ta opp att tidsmÄlinga. PÄ same mÄte vil oppkall av metoden Start etter at «Timer» er avslutta, starta «Timer» pÄ nytt som om han var ein ny, rein «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

Ver merksam pÄ at funksjonen Wait i Basic brukar millisekund, medan funksjonen sleep i Python brukar sekund i argumentet.


Arbeide med fleire «Timer»

Det er mulig Ä setja i gang fleire Timer-tenester parallelt, noko som gjer mÄling av tid i ulike deler av koden meir fleksibelt.

Eksempelet nedanfor viser korleis det kan setjast opp to Timer-objekt og setja dei i gang dei kvar for seg.

I Basic

    Dim myTimerA as Variant, myTimerB as Variant
    myTimerA = CreateScriptService("Timer")
    myTimerB = CreateScriptService("Timer")
    ' Startar MyTimerA
    myTimerA.Start()
    Wait 1000 'Wait 1 second (1,000 milliseconds)
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    ' Startar myTimerB
    myTimerB.Start()
    Wait 1000
    MsgBox myTimerA.Duration & " " & myTimerB.Duration
    Avsluttar begge «Timer»
    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-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.


StĂžtt oss!