Navigation: Platzhalter und Variablen > Platzhalter Pro-Lizenz >

Platzhalter: Timer

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

FG Timer-Platzhalter per [cX.Timer(ID).X]:

 

Mit diesen Platzhaltern können verschiedene Zeitgeber (unabhängig voneinander und vom laufenden Skript) verwendet werden.

 

.AbgelaufenLiefert die Zeit in Millisekunden, die der Timer bereits läuft
.AblaufzeitAblaufzeitpunkt des Timers als Uhrzeit h:mm:ss ermitteln oder setzen
Wird bei Setzen in ms für .Intervall umgerechnet und der Timer sofort (neu) gestartet.
.Bedingung$Definiert eine Bedingungsformel, deren Ergebnis ungleich 0 sein muss, damit das Ereignis gemeldet wird.
Diese Variable muss als $-Variable angewendet werden, damit die Platzhalter nicht schon bei der Definition ersetzt werden.
.EndlosVerhalten des Timers: 0=einmalig (Standard), 1=wiederholend
.EreignisEreignismarke eines Unterprogramms für die Bearbeitung des Ablauf-Ereignisses (siehe auch Aufruf-Befehl)
Optional kann dabei ein Parameter mit angegeben werden, etwa um den Timer zu identifizieren. Wird also z.B. Timer(Test) angegeben und die Marke lautet ::Timer(Name), wird diese aufgerufen, wobei dann "Test" in der Variablen [Name] steht (siehe Funktionen). Wird als Ereignismarke dagegen nur Timer angegeben, wird ebenfalls die Marke ::Timer(Name) aufgerufen, wobei [Name] dann leer ist.
.IntervallZeitintervall des Timers in Millisekunden oder beim Setzen als h:mm:ss
Das Setzen des Intervalls startet den Timer sofort neu, sofern er bereits läuft, andernfalls muss hierfür .Start gesetzt werden.
.LetzterTimerID des zuletzt abgelaufenen Timers (ID-Angabe nicht erforderlich)
.StartTimer (neu) starten
Setzen auf ein Intervall (Millisekunden oder h:mm:ss) setzt dieses auch fest, Setzen auf 0 stoppt den Timer, Setzen auf leer startet ihn mit dem zuvor eingestellten Intervall.
.StoppTimer stoppen
Das Setzen von [cX.Timer.Stopp] ohne ID stoppt alle laufenden Timer
.VerbleibendVerbleibende Zeit des Timers bis zum Ablauf in Millisekunden

 

Nach Ablauf des eingestellten Intervalls wird das in .Ereignis angegebene Unterprogramm aufgerufen.

Durch erneutes Setzen von .Start wird der Timer neu aufgesetzt, also das komplette Intervall neu abgewartet (Neustart).

 

Weitere Hinweise:

Zu kurz eingestellte sowie viele überlappende Timer können dazu führen, dass die Ereignisse sich gegenseitig unterbrechen, was zu unvorhergesehenen Ergebnissen führen kann. Daher sehr kurze Intervalle bitte mit Bedacht einsetzen und die Ereignis-Unterprogramme möglichst kurz halten!
Vom Anwender zu bestätigende Elemente (z.B. Meldung) sollten im Ereignis nicht verwendet werden, da hierdurch mehrere solche Meldungen gleichzeitig erscheinen können, wenn sie nicht bestätigt wurden.
Die Zeitgeber-Ereignisse werden vom System ausgelöst und sind daher sehr genau.
Die Timer-Intervalle sind unabhängig von einer eventuell aktivierten Zeitlupen-Ausführung.
Das Unterprogramm wird in dem Kontext aufgerufen, aus dem der Timer aktiviert wurde, also im Hauptprogramm oder auch einem Objekt bzw. einer cXtension.
Ein solcher Timer sollte daher nicht in einem Unterprogramm mit der Option Lokale Variablen verwendet werden, da dieser Variablen-Kontext nach Beenden des Unterprogramms gelöscht wird.

 

 

Beispiel

*** Test der [cX.Timer(ID).X]-Platzhalter 

Anzeige-Fenster 'Timer-Test', Breite=50, Höhe=40

Schalter 'Timer 1'   (ID='chkT1', X='1', Y='1')

Bezeichner Text='---'   (ID='bezT1', X='25', Y='4')

Schalter 'Timer 2'   (ID='chkT2', X='1', Y='15')

Bezeichner Text='---'   (ID='bezT2', X='25', Y='18')

Warte Endlos (Warten auf zu behandelnde Ereignisse)

 

:: Anzeige_Element(chkT1)_Klick

Wenn (? '[.Element(chkT1)]')

*** Timer1 aktivieren: Marke definieren und endlose Wiederholungen anfordern 

Setze in [cX.Timer(Timer1).Ereignis]: 'Timer1_Ist_Abgelaufen' 

Setze in [cX.Timer(Timer1).Endlos]: '1' 

Setze in [cX.Timer(Timer1).Start]: '1' 

Sonst

Setze in [cX.Timer(Timer1).Stopp]: '' 

Setze in [.Element(bezT1).Text]: '---' 

Ende Wenn

Beende Unterprogramm (Zurück)

 

:: Anzeige_Element(chkT2)_Klick

Wenn (? '[.Element(chkT2)]')

*** Timer2 aktivieren: nur 1 Ereignis nach 2 Sekunden 

Setze in [cX.Timer(Timer2).Ereignis]: 'Timer2_Tick' 

Setze in [cX.Timer(Timer2).Start]: '2' 

Sonst

Setze in [cX.Timer(Timer2).Stopp]: '' 

Setze in [cX.Anzeige.Element(bezT2).Text]: '---' 

Ende Wenn

Beende Unterprogramm (Zurück)

 

:: Timer1_Ist_Abgelaufen

Setze in [.Element(bezT1).Text]: '[cX.Zeit]' 

Beende Unterprogramm (Zurück)

 

:: Timer2_Tick

Setze in [.Element(bezT2).Text]: '[cX.Zeit]' 

Beende Unterprogramm (Zurück)

 

 

Beispiel als cX4Web-Code:

**cx5AR-LC AAAAAAABAD VVl1v2jAUf Z-0_2D5qTw QhlWkaSKVu o5pbG01iai wVRUyyYVYc ZzIcVbKr99 1-EynEVZCp T3he22d4xO fY9wd-Fqk5 uLtG0K6V7k 0uYaLALqt9 Xg5kcQxV0F WVNuarH69p xRcagtQhhI P5salHmSGB KDJvT9yPBG DPut_ajijh -Z3yc0i5NK ApqS1F3MQJ o9DoYLkcQN rkZoWnJKhC Ezo0s47Sr6 AmIU4fY7jG 6FELBbwMZm 71NZ8Xqr3U 16F4Ee4lJJ -4FI_jLx2i ZtgeZ343Ih EjVy6U_2w1 Qob0T8nymy 5WiuSvdzXf AJySTyBxZa 42WyWSFmnx Hp-HOufill ZMdunuFOrZ Hag5Pb742i HXJgqJ_Ti1 DxVLfqax-k N1xEltzzG- lIt0Iow7km waTgrDNQYf 5PCjyrdbrg 2_SnFrgqEV brst3c6d1z m2Lp3ygQPl bZ-lk57sG3

CIyN-CdCgP hCrAjCxU4y P7ZAcMUAFM skAowaY5TC RuZrhFFfTR GNDVUoCc8e 14BMJlKxHa LL1lbDcR8P pafxqSmSFU oMbXW9x3M_ M-HIyA8nzK dTHV-jaYWv XhVwc4r8A9 2QG9tDrok_ S9IVgG08Vl 0_DsVbZUVJ EskKLCqql4 KJXix47dfT Yy6LHStFTO f6tkHUGiOJ -SBgZQIQRr Mnz7O8ZY2P vkC90IMtz_ 7NX9D87zv8 ItvJQKQnsv 0tCnVdnxaV gX3c_QZjKF JxU61EWrjj skyncvFTsu 7rbWr3EfwO 9TWOhkgsAA A===*

 

 


 

Aufruf

Zurück

Unterprogramme

 


cX-Webseite: http://www.clickexe.net