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

THEMA:

Abfangen einer falschen Eingabe 19 Jan 2022 14:18 #1

  • Siebald
  • Offline
  • Beiträge: 79
  • Dank erhalten: 25
Hallo,
im beigefügten Script werden die Werte von 2 Eingabefeldern addiert. Wird in das linke Feld anstatt einer Zahl ein Buchstabe eingegeben wird dies nicht akzeptiert. 
Rechts daneben wird ein rotes Ausrufezeichen angezeigt. Die Berechnung wir mit Betätigung des Buttons auch nicht ausgeführt.
Wird dagegen in das rechte Eingabefeld ein Buchstabe eingegeben, wird bei Betätigung des Buttons die Berechnung durchgeführt und führt zu einer Laufzeitfehlermeldung.
Es müßte sich aber genauso verhalten wie beim linken Eingabefeld.

Gruß Frank

cX4Web cX4Web Code

Was ist das?

1  
2  Anzeige-Fenster 'Siebald', ID='Anzeige-Fenster1', Breite=153,46, Höhe=112,18
3  Button 'Test'  (ID='Button_1', X='9,31', Y='7,83', Zielfenster='Anzeige-Fenster1')
4  Eingabe-Element Text='0'  (ID='Zahl1', X='16,3', Y='24,98', Zielfenster='Anzeige-Fenster1')
5  Eingabe-Element Text='0'  (ID='Zahl2', X='46,14', Y='24,98', Zielfenster='Anzeige-Fenster1')
6  Eingabe-Element Text='0'  (ID='Ergebniswert', X='16,3', Y='40,64', Zielfenster='Anzeige-Fenster1', deaktiviert 1)
7  Warte Endlos (Warten auf zu behandelnde Ereignisse)
8  
9  
10  :: Anzeige(Anzeige-Fenster1)_Element(Button_1)_Klick
11  Setze in [Wert1]: '[cX.Anzeige(Anzeige-Fenster1).Eingabe(Zahl1).Wert]' 
12  Setze in [Wert2]: '[cX.Anzeige(Anzeige-Fenster1).Eingabe(Zahl2).Wert]' 
13  Setze in [Ergebnis]: '[Wert1] + [Wert2]' , berechnen'
14  Setze in [cX.Anzeige(Anzeige-Fenster1).Eingabe(Ergebniswert).Wert]: '[Ergebnis]' 
15  Beende Unterprogramm (Zurück)
16  

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


 (16 Zeilen, cX 5.0.8.6)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Abfangen einer falschen Eingabe 19 Jan 2022 15:06 #2

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1139
  • Dank erhalten: 1677
Hallo, Frank!

Sorry - deine Beschreibung passt irgendwie nicht mit dem Skript zusammen - oder übersehe ich da was?
Beispielweise akzeptieren beide Eingaben eh nur Ziffern, und eine Validierung (danach klingt das mit dem roten Ausrufezeichen) ist da nicht eingebaut.

Kannst du das nochmal prüfen, ob da irgendwas verwechselt ist?

Liebe Grüße
Stefan

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Abfangen einer falschen Eingabe 21 Jan 2022 08:00 #3

  • Siebald
  • Offline
  • Beiträge: 79
  • Dank erhalten: 25
Hallo Stefan,
ich einmal 2 Bildschirmfotos angehangen. Bei dem einen habe ich im linken Eingabefeld einen Buchstaben eingegeben. Dies wird nicht angenommen, da nur Zahlen erlaubt sind. Drücke ich dann trotzdem den Button "Test" erscheint das rote Ausrufezeichen links neben dem Eingabefeld. 
Mache ich das gleiche mit dem rechten Eingabefeld, erscheint ebenfalls das rote Ausrufezeichen, aber es wird noch ein Runtime-Error generiert. Beide Felder verhalten sich also unterschiedlich.

Vielen Dank im Voraus.

Gruß Frank

 
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Abfangen einer falschen Eingabe 21 Jan 2022 10:21 #4

  • AbsoluteFosback3
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Beiträge: 209
  • Dank erhalten: 117
Moin Frank

Das hat mit Buchstaben eingeben nichts zu tun, denn bei den Feldern kann man keine Buchstaben eingeben und es werden auch keine akzeptiert.
Der Laufzeitfehler kommt von der leeren Variable [Wert2] in Zeile 13, wenn man die Null löscht, denn bei Berechnungen dürfen keine Variablen leer sein.
Das Ausrufezeichen kommt immer dann, wenn das Eingabefeld leer ist und man geht raus aus dem Feld, vielleicht heißt das Ausrufezeichen also: "Eingabefeld leer".
0 + leer/nix drin -> damit kann man nicht rechnen, denn was ist denn auch Null plus nix drin? Aber leer/nix drin + 0 = 0, so denke ich mir das.

Fosback
 
Folgende Benutzer bedankten sich: Siebald

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Abfangen einer falschen Eingabe 21 Jan 2022 10:26 #5

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1139
  • Dank erhalten: 1677
Hallo, Frank!

Jetzt habe ich das Problem verstanden!
Es hat mit den Eingabefeldern gar nix zu tun, sondern (wenn man die "0" löscht) mit der resultierenden Formel!
Im ersten Fall ergibt sich bei Fehlen des ersten Arguments "+0", was ja ein gültiger Ausdruck ist, im zweiten Fall ergibt sich das ungültige "1+" - daher der Berechnungsfehler.

Entweder du fängst das ab, dass Eingabewerte leer sein können, oder setzt einfach das % ans Ende der Platzhalter in der Formel, welche auch leer sein könnten, also:
  Setze in [Ergebnis]: '[Wert1%] + [Wert2%]' , berechnen'
Hierdurch werden ja leere Platzhalter als "0" eingesetzt und die Formel kann so berechnet werden.
Siehe auch Zahlenwerte-Variablen .

Das rote Ausrufungszeichen erscheint nur, weil cX die Validierung selbst einsetzt und man dadurch leichter sieht, dass man da was Falsches eingegeben hat.

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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1

Community

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

Anmelden