Navigation: »Keine Kapitel über dieser Ebene«

Beispiel: cXtensionen

Diese Seite drucken
Zurück zur Kapitelübersicht

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