Navigation: Beispiele (Pro und Premium) > Beispiele Premium-Lizenz >

Beispiel: cXtensionen

Diese Seite drucken
Vorherige Seite
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 [Befehlsparameter.Zeit]:  '1000'

 Setze  in [Befehlsparameter.Variable$]:  'cx.Zeit'

 Setze  in [TimerAktiv]:  '0'

Zurück

 

***  Plugin aufräumen

::  Ticker_Stop

 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.0.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.[Befehlsparameter.Ziel$]]:  '[[Befehlsparameter.Variable$]]'

 ***  Ereignis auslösen

 Aufruf  'Ereignis: Tick'

Zurück

 

***  Darstellung des Plugins im Skript

::  Ticker_!Darstellung_Lesen

 Zurück   (Ergebnis: '(Intervall=[Befehlsparameter.Zeit] ms, Variable='[Befehlsparameter.Variable$]', Ziel='[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: '[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: '[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: '[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 [Befehlsparameter.Variable$]:  '[.Element(Variable)$]' (Platzhalter ersetzen)

 Setze  in [Befehlsparameter.Ziel$]:  '[.Element(Ziel)$]' (Platzhalter ersetzen)

 Setze  in [Befehlsparameter.Zeit]:  '[.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]:  '[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 cX2Web-Code:

**cX406984 0B4B35S1F4 2TTicker-P IÿCMQkwCQk gCUYqDQoxC TAJCSBQcm9 ncmF

tbSA6I FRpY2tlci1 QbHVnaW4gK GNYdGVuc2l vbikNCjEJM AkJIEJlc2N ocmVpYnV

uZ zogQWt0dWF saXNpZXJ0I Hp5a2xpc2N oIGRlbiBJb mhhbHQgZWl uZXIgWmllb H

ZhcmlhYmx lbg0KMQkwC QkgCUYqDQo 1CTAJCU1jW HRlbnNpb25 lbm4ga/Zub mVuIG

5pY2h 0IGdlc3Rhc nRldCB3ZXJ kZW4hCUMNC jAJMAkNCjE 5CTAJCSBPY mpla3QoVG

l ja2VyKV9Td GFydA0KMAk wCQ0KMQkwC QkgUGx1Z2l uIGluaXRpY Wxpc2llcmV uO

iBTdGFuZ GFyZHdlcnR lIHNldHplb g0KMTkJMAk JIFRpY2tlc l9TdGFydA0 KMjIJM

AkJI DEwMDAJPUJ lZmVobHNwY XJhbWV0ZXI uWmVpdA0KM jIJMAkJIGN 4LlplaXQJP

UJlZmVobHN wYXJhbWV0Z XIuVmFyaWF ibGUkDQoyM gkwCQkgMAk 9VGltZXJBa 3Rp

dg0KNDU JMAkJIAmuD QowCTAJDQo xCTAJCSBQb HVnaW4gYXV mcuR1bWVuD QoxOQkw

CQk gVGlja2VyX 1N0b3ANCjI yCTAJCSAxC T1UaW1lcih 4KS5TdG9wc A0KNDUJMAk

JIAmuDQowC TAJDQoxCTA JCSBCZXNja HJlaWJ1bmc gZGVzIFBsd WdpbnMNCjE 5CTA

JCSBUa WNrZXJfIUJ lc2NocmVpY nVuZ19MZXN lbg0KNDUJM AkJIAlBVGV zdC1jWHR

lb nNpb24gZvx yIGRhcyB6e WtsaXNjaGU gRWludHJhZ 2VuIGVpbmV zIFdlcnRlc y

BpbiBlaW5 lbiBQbGF0e mhhbHRlcg0 KMAkwCQ0KM QkwCQkgVmV yc2lvbiBkZ XMgUG

x1Z2l ucw0KMTkJM AkJIFRpY2t lcl8hVmVyc 2lvbl9MZXN lbg0KNDUJM AkJIAmuCU

E xLjAuMA0KM AkwCQ0KMQk wCQkgVmFya WFibGVuIGR lcyBQbHVna W5zDQoxOQk wC

QkgVGlja 2VyXyFWYXJ pYWJsZW5fT GVzZW4NCjQ 1CTAJCSAJQ UxTOkFrdGl 2PWxpZ

WZlc nQvc2V0enQ gZGVuIFRpb WVyLVN0YXR 1czogMD1kZ WFrdGl2aWV ydCwgMT1ha

3RpdmllcnQ NCjAJMAkNC jEJMAkJIEV yZWlnbmlzc 2UgZGVzIFB sdWdpbnMNC jE5

CTAJCSB UaWNrZXJfI UVyZWlnbml zc2VfTGVzZ W4NCjQ1CTA JCSAJQVRpY 2tlcl9U

aWN rPVRpbWVyI EVyZWlnbml ztlRpY2tlc l9TdGF0dXP kbmRlcnVuZ z1UaWNrZXI

gd3VyZGUgZ 2VzdGFydGV 0L2dlc3Rvc HB0DQowCTA JDQoxCTAJC SB3ZWl0ZXJ lIGZ

lc3RlI EVpZ2Vuc2N oYWZ0ZW4gL SBoaWVyOiB aZXJ0aWZpe mllcnVuZw0 KMTkJMAk

JI FRpY2tlcl9 GZXN0ZUVpZ 2Vuc2NoYWZ 0ZW5fTGVzZ W4NCjQ1CTA JCSAJQUF1d G

9yPUYuIFp vc3NlbrZSZ WdOdW1tZXI 9MTM0MzE2O DIwNQ0KMAk wCQ0KMQkwC QkgVG

ltZXI tRXJlaWdua XM6IFZhcml hYmxlIGluI FppZWwgc2V 0emVuDQoxO QkwCQkgVG

l tZXIoeClfV Gljaw0KMjI JMAkJIFtbQ mVmZWhsc3B hcmFtZXRlc i5WYXJpYWJ sZ

SRdXQk9T XV0dGVydmF yaWFibGVuL ltCZWZlaGx zcGFyYW1ld GVyLlppZWw kXQ0KM

QkwC QkgRXJlaWd uaXMgYXVzb PZzZW4NCjQ 0CTAJCSBFc mVpZ25pczo gVGljawmuD

Qo0NQkwCQk gDQowCTAJD QoxCTAJCSB EYXJzdGVsb HVuZyBkZXM gUGx1Z2luc yBp

bSBTa3J pcHQNCjE5C TAJCSBUaWN rZXJfIURhc nN0ZWxsdW5 nX0xlc2VuD Qo0NQkw

CQk gCUEoSW50Z XJ2YWxsPVt CZWZlaGxzc GFyYW1ldGV yLlplaXRdI G1zLCBWYXJ

pYWJsZT0nW 0JlZmVobHN wYXJhbWV0Z XIuVmFyaWF ibGUkXScsI FppZWw9J1t CZWZ

laGxzc GFyYW1ldGV yLlppZWwkX ScpDQowCTA JDQoxCTAJC SBEaWFsb2c gZGVzIFB

sd WdpbnMNCjE 5CTAJCSBUa WNrZXJfIUR pYWxvZ19MZ XNlbg0KMzk JMAkJIEFrd H

VhbGlzaWV ydW5ncy1Ua WNrZXIJR1R pY2tlclBJC Vc3NQlINDA JIwkxCSYNC jM4CT

AJCSB JbnRlcnZhb GwgaW4gbXM gOglYMiw1C VkyLDUJVzI zLDUJSDQsN QlMCTdUaW

N rZXJQSQ0KM zgJMAkJIFt CZWZlaGxzc GFyYW1ldGV yLlplaXRdC UlJbnRlcnZ hb

GwJWDI1C VkxLDUJVy0 yCVQJTgk3V Glja2VyUEk NCjM4CTAJC SBWYXJpYWJ sZSA6C

VgyL DUJWTgJVzI xCUg0LDUJT Ak3VGlja2V yUEkNCjM4C TAJCSBbQmV mZWhsc3Bhc

mFtZXRlci5 WYXJpYWJsZ SRdCUlWYXJ pYWJsZQlYM jUJWTcsNQl XLTIJVAlOC TdU

aWNrZXJ QSQ0KMzgJM AkJIFppZWw gOglYMiw1C VkxNAlXMjE JSDQsNQlMC TdUaWNr

ZXJ QSQ0KMzgJM AkJIFtCZWZ laGxzcGFyY W1ldGVyLlp pZWwkXQlJW mllbAlYMjU

JWTEzLDUJV y0yCVQJTgk 3VGlja2VyU EkNCjM4CTA JCSBPSwlJT 0sJWDIJWS0 xMAl

XMjAJS DgJRAk3VGl ja2VyUEkNC jM4CTAJCSB BYmJyZWNoZ W4JSUFiYnJ lY2hlbgl

YL TIyCVktMTA JVzIwCUg4C UMJN1RpY2t lclBJDQoxC TAJCSBEaWF sb2cgbW9kY W

wgYW56ZWl nZW4NCjM5C TAJCSBBa3R 1YWxpc2llc nVuZ3MtVGl ja2VyCUdUa WNrZX

JQSQl RCSMJJg0KN DUJMAkJIAl BW0RpYWxvZ 0FiYnJ1Y2h dDQowCTAJD QoxCTAJCS

B EaWFsb2cgd 3VyZGUgYWJ nZWJyb2NoZ W4NCjE5CTA JCSBBbnpla WdlKFRpY2t lc

lBJKV9Fb GVtZW50KEF iYnJlY2hlb ikNCjIyCTA JCSAxCT1Ea WFsb2dBYmJ ydWNoD

QozO QkwCQkgVGl tZXItVGlja 2VyUEkgdjE uMC4wCUdUa WNrZXJQSQl VDQo0NQkwC

Q0KMAkwCQ0 KMQkwCQkgR Wluc3RlbGx 1bmdlbiD8Y mVybmVobWV uDQoxOQkwC Qkg

QW56ZWl nZShUaWNrZ XJQSSlfRWx lbWVudChPS ykNCjIyCTA JCSAwCT1Ea WFsb2dB

YmJ ydWNoDQoyM gkwCQkgWy5 FbGVtZW50K FZhcmlhYmx lKSRdCT1CZ WZlaGxzcGF

yYW1ldGVyL lZhcmlhYmx lJAlFDQoyM gkwCQkgWy5 FbGVtZW50K FppZWwpJF0 JPUJ

lZmVob HNwYXJhbWV 0ZXIuWmllb CQJRQ0KMjI JMAkJIFsuR WxlbWVudCh JbnRlcnZ

hb GwpXQk9QmV mZWhsc3Bhc mFtZXRlci5 aZWl0DQozO QkwCQkgVGl tZXItVGlja 2

VyUEkgdjE uMC4wCUdUa WNrZXJQSQl VDQo0NQkwC Q0KMAkwCQ0 KMQkwCQkgQ XVzZv

xocnV uZyBkZXMgU Gx1Z2luczo gU3RhcnRlb g0KMTkJMAk JIFRpY2tlc l8hQXVzZv

x ocmVuX0xlc 2VuDQoyMgk wCQkgMQk9R Gllc2VzT2J qZWt0LkFrd Gl2DQo0NQk wC

QkgCa4JD QowCTAJDQo xCTAJCSBUa W1lciBwZXI gIkFrdGl2I i1FaWdlbnN jaGFmd

CBzd GFydGVuL3N 0b3BwZW4NC jE5CTAJCSB UaWNrZXJfQ Wt0aXZfU2N ocmVpYmVuD

QoyMgkwCQk gQWJzKFtBa 3Rpdl9XZXJ 0XTw+MCkJP VRpbWVyQWt 0aXYJQw0KM jkJ

MAkJIFt UaW1lckFrd Gl2XT0wDQo yMgkwCQkgM Qk9VGltZXI oeCkuU3Rvc HANCjE3

CTA JCSANCjIyC TAJCSAxCT1 UaW1lcih4K S5FbmRsb3M NCjIyCTAJC SBbQmVmZWh

sc3BhcmFtZ XRlci5aZWl 0XQk9VGltZ XIoeCkuU3R hcnQNCjE4C TAJDQoxCTA JCSB

FcmVpZ 25pcyBhdXN s9nNlbg0KN DQJMAkJIEV yZWlnbmlzO iBTdGF0dXP kbmRlcnV

uZ wmuDQo0NQk wCQkgDQowC TAJDQoxCTA JCSBUaW1lc i1TdGF0dXM gYXVzbGVzZ W

46IDA9bml jaHQgYWt0a XYsIDE9YWt 0aXYNCjE5C TAJCSBUaWN rZXJfQWt0a XZfTG

VzZW4 NCjQ1CTAJC SAJQVtUaW1 lckFrdGl2X Q0KMAkwCQ0 KMTkJMAkJI E9iamVrdC

h UaWNrZXIpX 0VuZGUNCjA JMAkNCg=== *

 

 

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 [.Element(Status).Text]:  '[Ticker.Aktiv]'

Zurück

 

 

Beispiel als cX2Web-Code

**cX401DBE 66567ES214 1CMQkwCQkg QW56ZWlnZS 1GZW5zdGVy IGRhcnN0ZW

xsZW4NCjM5 CTAJCSBUaW NrZXItRGVt bwlXNTMJSD M3LDUJWg0K MzgJMAkJIA

lJYTEJWDQs NQlZMglXND MJSDUJVA0K MzgJMAkJIF N0b3AJSVN0 b3AJWDI3CV

kxMQlXMjEJ SDgJQw0KMz gJMAkJIFN0 YXJ0CUlTdG FydAlYNCw1 CVkxMQlXMj

EJSDgJRA0K MzgJMAkJIF RpbWVyIGFr dGl2OiAJSU Jlel9TdGF0 dXMJWDEJWT

IyLDUJVzE5 LDUJSDQsNQ lMDQozOAkw CQkgCUlTdG F0dXMJWDE4 LDUJWTIyLD

UJVzE5LDUJ SDQsNQlMDQ owCTAJDQot MQkwCQlGVG lja2VyCSBj WE9WMTAwMD

MwMDhWQVJJ QUJMRTAwMD AwMDhjeC5U aWNrczAwNF pJRUwwMDAw MDExLkVsZW

1lbnQoYTEp LlRleHQwMD RaRUlUMDAw MDAwMzEwMA 0KMAkwCQ0K MzEJMAkJRQ

0KMAkwCQ0K MQkwCQkgVG ltZXIgd2ly ZCBnZXN0b3 BwdA0KMTkJ MAkJIEFuem

VpZ2VfRWxl bWVudChTdG 9wKQ0KMjIJ MAkJIDAJPV RpY2tlci5B a3Rpdg0KND

UJMAkNCjAJ MAkNCjEJMA kJIFRpbWVy IHdpcmQgZ2 VzdGFydGV0 DQoxOQkwCQ

kgQW56ZWln ZV9FbGVtZW 50KFN0YXJ0 KQ0KMjIJMA kJIDEJPVRp Y2tlci5Ba3

Rpdg0KNDUJ MAkNCjAJMA kNCjEJMAkJ IFRpY2tlci 1FcmVpZ25p c3NlDQoxOQ

kxCQkgVGlj a2VyX1RpY2 sNCjE0CTEJ CUINCjQ1CT EJDQoxOQkw CQkgVGlja2

VyX1N0YXR1 c+RuZGVydW 5nDQoyMgkw CQkgW1RpY2 tlci5Ba3Rp dl0JPS5FbG

VtZW50KFN0 YXR1cykuVG V4dA0KNDUJ MAkNCg===*

 

 


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