sodele....hab mal wieder etwas Zeit für Pure Basic.
Da in dem unten gezeigten Code auch Kommazahlen eingegeben werden sollen hat ja dies nix mehr drin zu Suchen: #PB_String_Numeric : Nur (positive) Ganzzahlen werden akzeptiert.
Habe mit:
eingabe1$=ReplaceString(eingabe1$,",",".") ; Komma in Punkt tauschen
zumindest schon mal die Möglichkeit geschaffen auch wirklich ein Komma einzugeben.
Gibt es ne Möglichkeit, nur Komma oder Punkt und Zahlen für die Eingabe zuzulassen? Also alle anderen Zeichen werden nicht akzeptiert.
Geht das irgendwie?

Und immer noch PureBasic 4.41 DEMO
Gruß
Kallewirsch
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_0
#Button_loeschen
#Button_Close
#Button_drucken
#String_0
#String_1
#String_2
#String_3
#String_4
#STRING_5
#TString_0
#TString_1
#TString_2
#TString_3
#TString_4
#TString_5
#TString_6
#TString_7
#TString_8
#STRING_INPUT
#STRING_INPUT_1
#STRING_INPUT_2
#MB_ICONEXCLAMATION
EndEnumeration
#CRLF$ = Chr(13)+Chr(10)
LoadFont(0, "Arial", 20)
LoadFont(1, "Arial", 24)
Procedure ergebnisloeschen()
; Achtung hier Ermittlung der richtigen Zifferanzahl
If (EventType()=#PB_EventType_LostFocus)
aFeld=EventGadget()
iFeld$ = GetGadgetText(aFeld)
If (Len(iFeld$)>0) And (Len(iFeld$)<2)
MessageRequester("InfoBox", "Zahl zu klein! Mindestens 2 Stellen!") ; #MB_ICONEXCLAMATION)
SetActiveGadget(aFeld)
SetGadgetText(#STRING_INPUT_2, ("Eingabe FALSCH!"))
SetGadgetColor(#STRING_INPUT_2, #PB_Gadget_BackColor,$3300FF)
ElseIf (Len(iFeld$)>4)
MessageRequester("InfoBox", "Zahl zu groß! Maximal 4 Stellen!") ; #MB_ICONEXCLAMATION)
SetGadgetText(aFeld,"")
SetActiveGadget(aFeld)
SetGadgetText(#STRING_INPUT_2, ("Eingabe FALSCH!"))
SetGadgetColor(#STRING_INPUT_2, #PB_Gadget_BackColor,$3300FF)
EndIf
Else
For n=#string_0 To #String_5
SetGadgetColor(n, #PB_Gadget_BackColor, -1)
Next n
SetGadgetColor(GetActiveGadget(), #PB_Gadget_BackColor,$00FFFF)
SetGadgetText(#STRING_INPUT, "")
SetGadgetText(#STRING_INPUT_1, "")
EndIf
SetGadgetText(#STRING_INPUT,"")
SetGadgetColor(#STRING_INPUT, #PB_Gadget_BackColor,$FFFFFF)
SetGadgetText(#STRING_INPUT_1,"")
SetGadgetColor(#STRING_INPUT_1, #PB_Gadget_BackColor,$FFFFFF)
EndProcedure
If OpenWindow(#Window_0, 248, 16, 730, 642, "Mittelwertrechner", #PB_Window_SystemMenu | #PB_Window_ScreenCentered| #PB_Window_SizeGadget | #PB_Window_TitleBar )
SetWindowColor(#Window_0,$FFFFFF)
SetGadgetFont(#TString_0, FontID(0))
ButtonGadget(#Button_0, 250, 500, 100, 50, "Berechnen")
ButtonGadget(#Button_loeschen, 425, 500, 100, 50, "Löschen")
ButtonGadget(#Button_Close, 600, 500, 100, 50, "Schließen")
TextGadget(#TString_1, 40, 30, 160, 20, "Zahl 1 eingeben")
StringGadget(#String_0, 40, 50, 160, 60, "", #PB_String)
SetGadgetFont(#String_0, FontID(0))
TextGadget(#TString_2, 40, 120, 160, 20, "Zahl 2 eingeben")
StringGadget(#String_1, 40, 140, 160, 60, "", #PB_String)
SetGadgetFont(#String_1, FontID(0))
TextGadget(#TString_3, 40, 210, 160, 20, "Zahl 3 eingeben")
StringGadget(#String_2, 40, 230, 160, 60, "", #PB_String)
SetGadgetFont(#String_2, FontID(0))
TextGadget(#TString_4, 40, 300, 160, 20, "Zahl 4 eingeben")
StringGadget(#String_3, 40, 320, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_3, FontID(0))
TextGadget(#TString_6, 40, 390, 160, 20, "Zahl 5 eingeben")
StringGadget(#String_4, 40, 410, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_4, FontID(0))
TextGadget(#TString_7, 40, 480, 160, 20, "Zahl 6 eingeben")
StringGadget(#String_5, 40, 500, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_5, FontID(0))
TextGadget(#TString_5, 250, 300, 280, 20, "Mittelwert.d der Eingaben")
StringGadget(#STRING_INPUT, 250, 320, 450, 50,"", #PB_String_Numeric)
SetGadgetFont(#STRING_INPUT, FontID(1))
TextGadget(#TString_8, 250, 380, 280, 20, "Mittelwert.d x100")
StringGadget(#STRING_INPUT_1, 250, 400, 450, 50,"", #PB_String_Numeric)
TextGadget(#STRING_INPUT_2, 250, 150, 130, 100,"", #PB_Text_Border)
SetGadgetFont(#STRING_INPUT_2, FontID(0))
Repeat
iEvent.i = WaitWindowEvent()
Select iEvent
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
SetControl=0
eingabe1$=GetGadgetText(#String_0)
eingabe2$=GetGadgetText(#String_1)
eingabe3$=GetGadgetText(#String_2)
eingabe4$=GetGadgetText(#String_3)
eingabe5$=GetGadgetText(#String_4)
eingabe6$=GetGadgetText(#STRING_5)
eingabe1$=ReplaceString(eingabe1$,",",".") ; Komma in Punkt tauschen
If (eingabe1$<>"")
Teiler + 1
Mittelwert.d = ValD(eingabe1$)
Else
If SetControl=0
MessageRequester("Eingabefehler","Feld 1 muß ausgefüllt werden!")
SetControl=1
EndIf
EndIf
If (eingabe2$<>"")
Teiler + 1
Mittelwert.d + ValD(eingabe2$)
Else
If SetControl=0
MessageRequester("Eingabefehler","Feld 2 muß ausgefüllt werden!")
SetControl=1
EndIf
EndIf
If (eingabe3$<>"")
Teiler + 1
Mittelwert.d + ValD(eingabe3$)
Else
If SetControl=0
MessageRequester("Eingabefehler","Feld 3 muß ausgefüllt werden!")
SetControl=1
EndIf
EndIf
If (eingabe4$<>"")
Teiler + 1
Mittelwert + ValD(eingabe4$)
Else
If SetControl=0
MessageRequester("Eingabefehler","Feld 4 muß ausgefüllt werden!")
SetControl=1
EndIf
EndIf
If (eingabe5$<>"")
Teiler + 1
Mittelwert + ValD(eingabe5$)
Else
If SetControl=0
MessageRequester("Eingabefehler","Feld 5 muß ausgefüllt werden!")
SetControl=1
EndIf
EndIf
If (eingabe6$<>"")
Teiler + 1
Mittelwert + ValD(eingabe6$)
Else
If SetControl=0
MessageRequester("Eingabefehler","Feld 6 muß ausgefüllt werden!")
SetControl=1
EndIf
EndIf
If Teiler=6
SetGadgetText(#STRING_INPUT,StrD(Mittelwert.d/Teiler))
a1.d = Mittelwert.d / Teiler * 100
Mittel100 = Round(a1, #PB_Round_Up)
SetGadgetText(#STRING_INPUT_1,Str(Mittel100))
SetGadgetColor(#STRING_INPUT_1, #PB_Gadget_BackColor,$00FFFF)
SetGadgetText(#STRING_INPUT_2, ("Eingabe in Ordnung"))
SetGadgetColor(#STRING_INPUT_2, #PB_Gadget_BackColor,$00FF00)
Else
MessageRequester("Fehler","Es müssen alle Felder korrekt ausgefüllt werden!")
EndIf
Teiler=0
Case #Button_loeschen
SetGadgetText(#String_0,"")
SetGadgetText(#String_1,"")
SetGadgetText(#String_2,"")
SetGadgetText(#String_3,"")
SetGadgetText(#String_4,"")
SetGadgetText(#STRING_5,"")
SetGadgetText(#STRING_INPUT_2,"")
SetGadgetColor(#STRING_INPUT_2, #PB_Gadget_BackColor,$FFFFFF)
ergebnisloeschen()
Case #String_0
ergebnisloeschen()
Case #String_1
ergebnisloeschen()
Case #String_2
ergebnisloeschen()
Case #String_3
ergebnisloeschen()
Case #String_4
ergebnisloeschen()
Case #STRING_5
ergebnisloeschen()
Case #STRING_INPUT
SetGadgetColor(#STRING_INPUT, #PB_Gadget_BackColor,$00FFFF)
Case #BUTTON_CLOSE
Quit = #True
EndSelect
EndSelect
Until iEvent = #PB_Event_CloseWindow Or Quit = #True
EndIf
End