Skriptbeispiel für eine cXtension:
Dieses Skript erstellt einen neuen Befehl namens Ticker, welcher das zyklische Aktualisieren von Elementen stark vereinfacht. Ein Beispiel für den Einsatz dieses Tickers ist etwa das Anzeigen der Uhrzeit oder einer Stoppuhr in einem beliebigen Anzeige-Element.
**************************************************************************************************** *** Programm : Ticker-Plugin (cXtension) *** Beschreibung: Aktualisiert zyklisch den Inhalt einer Zielvariablen *** **************************************************************************************************** Beende Skript (mit Meldung 'cXtensionen können nicht gestartet werden!')
:: Objekt(Ticker)_Start
*** Plugin initialisieren: Standardwerte setzen :: Ticker_Start Setze in [cX.cXtension.Befehlsparameter(Zeit)]: '1000' Setze in [cX.cXtension.Befehlsparameter(Variable$)]: 'cx.Zeit' Setze in [TimerAktiv]: '0' Zurück
*** Plugin aufräumen :: Ticker_Stopp Setze in [Timer(x).Stopp]: '1' Zurück
*** Beschreibung des Plugins :: Ticker_!Beschreibung_Lesen Zurück (Ergebnis: 'Test-cXtension für das zyklische Eintragen eines Wertes in einen Platzhalter')
*** Version des Plugins :: Ticker_!Version_Lesen Zurück (Ergebnis: '1.1.0')
*** Variablen des Plugins :: Ticker_!Variablen_Lesen Zurück (Ergebnis: 'LS:Aktiv=liefert/setzt den Timer-Status: 0=deaktiviert, 1=aktiviert')
*** Ereignisse des Plugins :: Ticker_!Ereignisse_Lesen Zurück (Ergebnis: 'Ticker_Tick=Timer Ereignis¶Ticker_Statusänderung=Ticker wurde gestartet/gestoppt')
*** weitere feste Eigenschaften - hier: Zertifizierung :: Ticker_!FesteEigenschaften_Lesen Zurück (Ergebnis: 'Autor=F. Zossen¶RegNummer=1343168205')
*** Timer-Ereignis: Variable in Ziel setzen :: Timer(x)_Tick Setze in [Muttervariablen.[cX.cXtension.Befehlsparameter(Ziel$)]]: '[[cX.cXtension.Befehlsparameter(Variable$)]]' *** Ereignis auslösen Aufruf 'Ereignis: Tick' Zurück
*** Darstellung des Plugins im Skript :: Ticker_!Darstellung_Lesen Zurück (Ergebnis: '(Intervall=[cX.cXtension.Befehlsparameter(Zeit)] ms, Variable='[cX.cXtension.Befehlsparameter(Variable$)]', Ziel='[cX.cXtension.Befehlsparameter(Ziel$)]')')
*** Dialog des Plugins :: Ticker_!Dialog_Lesen Anzeigefenster 'Aktualisierungs-Ticker' (ID='TickerPI', B=75, H=40, Keine Systemsymbole, Fenster unsichtbar, Werkzeugfenster) Anzeige-Element Bezeichner: 'Intervall in ms :' (X=2,5, Y=2,5, B=23,5, H=4,5, Zielfenster-ID: 'TickerPI') Anzeige-Element Eingabe: '[cX.cXtension.Befehlsparameter(Zeit)]' (ID='Intervall', X=25, Y=1,5, B=-2, markieren, Zielfenster-ID: 'TickerPI') Anzeige-Element Bezeichner: 'Variable :' (X=2,5, Y=8, B=21, H=4,5, Zielfenster-ID: 'TickerPI') Anzeige-Element Eingabe: '[cX.cXtension.Befehlsparameter(Variable$)]' (ID='Variable', X=25, Y=7,5, B=-2, markieren, Zielfenster-ID: 'TickerPI') Anzeige-Element Bezeichner: 'Ziel :' (X=2,5, Y=14, B=21, H=4,5, Zielfenster-ID: 'TickerPI') Anzeige-Element Eingabe: '[cX.cXtension.Befehlsparameter(Ziel$)]' (ID='Ziel', X=25, Y=13,5, B=-2, markieren, Zielfenster-ID: 'TickerPI') Anzeige-Element Button: 'OK' (ID='OK', X=2, Y=-10, B=20, H=8, Vorgabe, Zielfenster-ID: 'TickerPI') Anzeige-Element Button: 'Abbrechen' (ID='Abbrechen', X=-22, Y=-10, B=20, H=8, Abbruch, Zielfenster-ID: 'TickerPI') *** Dialog modal anzeigen Anzeigefenster 'Aktualisierungs-Ticker' (ID='TickerPI', modal, Keine Systemsymbole, Werkzeugfenster) Zurück (Ergebnis: '[DialogAbbruch]')
*** Dialog wurde abgebrochen :: Anzeige(TickerPI)_Element(Abbrechen) Setze in [DialogAbbruch]: '1' Anzeigefenster Fenster entfernen (ID='TickerPI') Zurück
*** Einstellungen übernehmen :: Anzeige(TickerPI)_Element(OK) Setze in [DialogAbbruch]: '0' Setze in [cX.cXtension.Befehlsparameter(Variable$)]: '[cX.Anzeige.Element(Variable)$]' (Platzhalter ersetzen) Setze in [cX.cXtension.Befehlsparameter(Ziel$)]: '[cX.Anzeige.Element(Ziel)$]' (Platzhalter ersetzen) Setze in [cX.cXtension.Befehlsparameter(Zeit)]: '[cX.Anzeige.Element(Intervall)]' Anzeigefenster Fenster entfernen (ID='TickerPI') Zurück
*** Ausführung des Plugins: Starten :: Ticker_!Ausführen_Lesen Setze in [DiesesObjekt.Aktiv]: '1' Zurück
*** Timer per "Aktiv"-Eigenschaft starten/stoppen :: Ticker_Aktiv_Schreiben Setze in [TimerAktiv]: 'Abs([Aktiv_Wert]<>0)' (berechnen) Wenn Wahr: '[TimerAktiv]=0' Setze in [Timer(x).Stopp]: '1' Sonst Setze in [Timer(x).Endlos]: '1' Setze in [Timer(x).Start]: '[cX.cXtension.Befehlsparameter.Zeit]' Ende Wenn *** Ereignis auslösen Aufruf 'Ereignis: Statusänderung' Zurück
*** Timer-Status auslesen: 0=nicht aktiv, 1=aktiv :: Ticker_Aktiv_Lesen Zurück (Ergebnis: '[TimerAktiv]')
:: Objekt(Ticker)_Ende |
Beispiel als cX4Web-Code:
|
Hier nun das Test-Beispiel für die cXtension
*** Anzeige-Fenster darstellen Anzeigefenster 'Ticker-Demo' (B=53, H=37,5, zentriert) Anzeige-Element Eingabe: (ID='a1', X=4,5, Y=2, B=43, H=5) Anzeige-Element Button: 'Stop' (ID='Stop', X=27, Y=11, B=21, H=8, Abbruch) Anzeige-Element Button: 'Start' (ID='Start', X=4,5, Y=11, B=21, H=8, Vorgabe) Anzeige-Element Bezeichner: 'Timer aktiv: ' (ID='Bez_Status', X=1, Y=22,5, B=19,5, H=4,5) Anzeige-Element Bezeichner: (ID='Status', X=18,5, Y=22,5, B=19,5, H=4,5)
Ticker (Intervall=100 ms, Variable='cx.Ticks', Ziel='.Element(a1).Text')
Warte endlos...
*** Timer wird gestoppt :: Anzeige_Element(Stop) Setze in [Ticker.Aktiv]: '0' Zurück
*** Timer wird gestartet :: Anzeige_Element(Start) Setze in [Ticker.Aktiv]: '1' Zurück
*** Ticker-Ereignisse ( :: Ticker_Tick ( Sound Beep ( Zurück :: Ticker_Statusänderung Setze in [cX.Anzeige.Element(Status).Text]: '[Ticker.Aktiv]' Zurück |
Beispiel als cX4Web-Code
|
cX-Webseite: http://www.clickexe.net