German Brauche Hilfe

Frankie77

New Member
Hallo Leute,

bin Anfänger und weis nicht mehr weiter. Im angehängten File berechne ich diverse Werte für CNC-Maschinen. wenn ich im 1.Feld (durchmesser) eine Zahl mit Komma eingebe wird es richtig erkannt und durch einen Punkt ersetzt, wenn ich jedoch im 2. Feld (je nach Auswahl "Schnittgeschwindigkeit" oder "Drehzahl") ein Zahl mit Komma eingebe, wird das Komma nicht als Falsch erkannt, sondern einfach ignoriert, auch beim rechnen.
Wer weis weiter?:sign0085:
Danke
Helmut
 

Attachments

MM2forever

Active Member
Licensed User
also bei mir wird es auch in beiden eingabefeldern vernachlässigt.
bei dem quelltext bekomme ich leichte kopfschmerzen, (nur wegen der optik) weil man da ständig rummsuchen muss... das soll keine großartige kritik sein, aber sachen wie

B4X:
[B]If [/B][blalblalala] [B]Then[/B]
     [B]If[/B] [next blablalal] [B]Then[/B]
          [mach dies + jenes]
     [B]Else[/B]
          [machwasanderes]
     [B]End If[/B]
[B]End If[/B]
]

wären hilfreich (tabs für geschachtelte abfragen, ect.)
*nich böse gemeint, hilft blos den anderen leichter zu helfen, und man findet später selber sich besser in den code rein*

-----

probier als erstes mal die "keine buchstaben oder kommas" - teile rauszunehmen, da überflüssig und vllt. auch schon problemverursachend.
wenn man ein komma drin hat ist das ding schon automatisch ein string und keine number mehr.
das einzig wichtige sind die ersetzungs - passagen

probier das erstmal... "die keine buchstaben..."-teile hab ich zumindest beim step by step durchlauf irgendwie als kritisch angesehen.. da wurden irgendwie dann die ersetzungs passagen nicht ausgeführt

massive irrtümer vorbehalten

gruss
Christian
 

sloopa

Member
Licensed User
Wende die Regeln an: http://de.wikipedia.org/wiki/Einrückungsstil
Poste dein SourceCode erneut mit sauberen Einrückstil, dann helfen wir dir weiter!!

(Und noch ein weiteres: Sprünge mit goto (wie in deiner Source) versucht man zu vermeiden und läßt sich auch fast immer vermeiden!!!)
 

Frankie77

New Member
Hallo,

das war ein Empfang !! :sign0148:

Danke für die Tips, hab was gelernt, hoffe ich zumindest!

Ich habe es mal alles nach bestem Wissen und Gewissen formatiert. Ich hoffe dass ihr jetzt etwas zufriefener seid. Den Fehler habe ich aber nicht gefunden. Beim Feld "eingabe1" wird das komma einfach ignoriert.

Gruss Helmut
 

Attachments

Heinz

Active Member
Licensed User
Hallo,
normalerweise könntest du sowas mit dem keypress-Event
abfangen. Einfach mal im Designer den Event für die Textboxen anklicken,
dann bekommst du sowas :
B4X:
Sub durchm_KeyPress (key)
    If key = "," Then
       durchm.IgnoreKey 
    End If  
End Sub

Sub eingabe1_KeyPress (key)
    If key = "," Then
       eingabe1.IgnoreKey
    End If
End Sub
Das was in der SUB stehen sollte, habe ich dir reingeschrieben.
Ich denke mal, daß es das richtige ist. Hier wird das Komma
ignoriert.
 

specci48

Well-Known Member
Licensed User
Hallo Frankie77,

irgendwie habe ich Deinen Fehler nicht so richtig nachvollziehen können. Daher habe ich mir erlaubt, Deine "Sub berech_Click" ein wenig zu überarbeiten.
Dabei bin ich von folgenden Vorraussetzungen ausgegangen. Du möchtest:
a) ein Komma automatisch durch Punkt für die Berechnung ersetzt wird
b) Dass nur gültige Werte eingegeben werden (mit Hinweistext)

Zuerst werden nun alle Kommas durch Punkte ersetzt, bevor die Numeric-Prüfung stattfindet. Somit wird die Eingabe von meheren Kommas (z.B. 3,4,5) auch zu einem Fehler führen. Dann werden die beiden Eingaben separat auf numerisch geprüft und ggf. gelöscht. Bei Falscheingabe gibt es eine Fehlermeldung und es findet auch keine Berechnung statt (wegen return).
Anschließend wird je nach Auswahl Deine Berechnung aufgerufen.
Als Nebeneffekt ist der Code deutlich übersichtlicher geworden ... ;)

Test doch mal, ob Dein Fehler nun noch immer auftritt.


Gruß
specci48
 

Attachments

Frankie77

New Member
Hallo Leute,

danke für die Tips, echt super hier:sign0188:
Ich habe mal soweit die Dinge eingearbeitet, besonders das mit dem "IgnorKey" hat mir gefallen.
specci48, danke für die Mühe. Mir reicht es eigentlich, dass einfach bestimmte Zeichen ("-" , ",") und Buchstaben nicht akzeptiert werden.

Hier der Code nochmal
 

Attachments

specci48

Well-Known Member
Licensed User
Dann solltest aber besser die IgnoreKey Methode mit einer separaten Numeric-Prüfung kombinieren, denn momentan funktioniert in Deinen Eingabenfeldern kein Backspace mehr und auch eine fehlende Eingabe wird nicht erkannt.
Gib mal einen Durchmesser, aber keine Drehzahl an ... dann läufst Du auf einen Berechnungsfehler. Mit der separaten Numeric-Prüfung ist steht im Feld mindestens eine Null und die zusätzlichen Prüfungen auf > 0 in den Berechnungs-Subs kannst Du dir sparen.


specci48
 
Top