Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA:

Befehl Status 26 Jun 2021 23:28 #1

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 781
  • Dank erhalten: 588
Hallo liebe Testkollegen

Hier ein aus der Doku nachempfundenes und leicht modifiziertes Beispielskript zum nachvollziehen und freien Verwendung.

cX4Web cX4Web Code

Was ist das?

1  *** Statusanzeige
2  
3  Anzeige-Fenster 'Statusanzeige', ID='demofenster', Höhe=56,89
4  Button 'Statusanzeige anzeigen'  (ID='Button_1', X='39,16', Y='37,31', Breite='49,74', Zielfenster='demofenster')
5  Liste 'Das Beispiel erzeugt ein Anzeigefenster mit der Schaltfläche ¶"Statusanzeige anzeigen". Wird diese...', erst löschen  (ID='Liste_1', Y='3,18', Breite='121,71', Höhe='32,01', Zielfenster='demofenster')
6  Warte Endlos (Warten auf zu behandelnde Ereignisse)
7  
8  :: Anzeige(demofenster)_Element(Button_1)_Klick
9  Schleife ab hier mit Variable [zähler] von 1 bis 10000 Schrittweite 1
10   Status 'Die Dateien werden kopiert', Titel='Bitte warten ...', Fortschritts-Text '[cX.Rechne([zähler]\100)] %'
11  Schleife bis hier
12  Beende Unterprogramm (Zurück)
13  
14  :: Status_Abbruch
15  Wenn (? Werteprüfung'[cX.JaAufFrage(Wollen Sie die Aktion wirklich abbrechen?)]' = '0')
16   Aufruf Marke 'Anzeige(demofenster)_Element(Button_1)_Klick'
17  Ende Wenn
18  Beende Skript

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


 (18 Zeilen, cX 5.0.8.2)


Bitte bedenkt jedoch, das ev. eine bestimmte Lizenz zum ausführen erforderlich ist, dann bitte im Volltestmodus ausführen.


@Stefan

Lieber Stefan, die Variable [Status_KeinAbbruch] gibt es aber auch nicht mehr. Oder?

lg Christian

 
Folgende Benutzer bedankten sich: Bandit

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Befehl Status 29 Jun 2021 21:28 #2

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 781
  • Dank erhalten: 588
Servus lieber Stefan, was mir in dem Kontext noch aufgefallen ist: Wenn man das Skript per Doppelclick mit dem Clickexe-Debugger aufruft oder eine .exe (da wird der Abbrechenknopf in Englisch dargestellt) daraus erstellt, reagiert der 'Abbrechenknopf' nicht. Erst bei 100%

lg Christian
Folgende Benutzer bedankten sich: Stefan, Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Befehl Status 30 Jun 2021 14:00 #3

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1127
  • Dank erhalten: 1664
Hallo, Christian!

Danke für diese Hinweise!
Ich habe die Statusanzeige nochmal überarbeitet - da waren wirklich noch Macken drin.
Man kann nun auch im ::Status_Abbruch-Ereignis die Variable [cX.ProgrammNichtBeenden] (alt: [Status_KeinAbbruch]) setzen, um den Programmabbruch zu verhindern (ich hatte diese Möglichkeit schlicht übersehen, habe dann aber auch die bereits existierende Variable verwendet).
Dummerweise waren auch die Eigenschaften "kein 'Abbrechen" und "kein Skriptabbruch" irgendwie verwechselt - sorry!

Jedenfalls ist in der nächsten Version so, dass man für deine Anwendung entweder "kein Skriptabbruch" im Statusbefehl setzt und im Ereignis dann bei Bedarf das Skript selbst beendet, oder man setzt diese Variable [cX.ProgrammNichtBeenden] im ::Status_Abbruch-Ereignis, um das automatische Beenden des Programms zu verhindern.

Ansonsten stört mich an deinem Skript doch erheblich, dass du da den Button-Klick erneut als Unterprogramm aufrufst, obwohl dieses ja eigentlich noch läuft. Sollte man doch lieber nicht machen, weil ansonsten nach Abarbeitung des erneuten Aufrufs die ursprüngliche Schleife weiterläuft - das willst du ja nicht. Außerdem würde in einem realen Beispiel das Kopieren der Dateien ja auch von vorne beginnen...
Auch solltest du im Wenn-Befehl für sowas hier nicht die Art "Werteprüfung" für einen Vergleich verwenden (das ist für ein Switch..Case), sondern halt "Ausdruck".
Ich habe hier gleich mal Beispiele, wie das insgesamt eleganter geht/gehen wird.

Mit der korrigierten cX-Version ist die Behandlung des Abbruch-Ereignisses dann ganz einfach (so ging das ja etwa auch in cX4):

cX4Web cX4Web Code

Was ist das?

1  :: Status_Abbruch
2  Wenn (? Unwahr: '[cX.JaAufFrage(Wollen Sie die Aktion wirklich abbrechen?)]')
3   Setze in [cX.ProgrammNichtBeenden]: '1'
4  Ende Wenn
5  Beende Unterprogramm (Zurück)

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


(5 Zeilen, cX 5.0.8.2)


Ist die Eigenschaft "kein Skriptabbruch" im Status-Befehl aktiviert, wäre es halt andersrum:

cX4Web cX4Web Code

Was ist das?

1  :: Status_Abbruch
2  Wenn (? '[cX.JaAufFrage(Wollen Sie die Aktion wirklich abbrechen?)]')
3   Beende Skript
4  Ende Wenn
5  Beende Unterprogramm (Zurück)

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


(5 Zeilen, cX 5.0.8.2)


Ich werde beizeiten eine neue Version hochladen, OK?

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker, Bandit

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Befehl Status 30 Jun 2021 15:01 #4

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 781
  • Dank erhalten: 588
Lieber Stefan, zum einen möchte ich mich ganz herzlich für diese Infos bedanken, weil es ja auch für alle anderen Kollegen und stillen Mitleser sehr informativ ist und zum anderen muss sich niemand für etwas entschuldigen was der Sache dient. Wir sind alle froh das es CX wieder gibt und das so schnell in der Betaphase von Dir (Euch) reagiert wird.

Vielen Dank nochmals dafür

lg Christian
Folgende Benutzer bedankten sich: Stefan, Soko, Bandit, Olli

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1

Community

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Diese Cookies sind essenziell für den Betrieb dieser Website. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden