Hallo an Dysti , Pelagio , Kaeru Gaman und natürlich auch an die anderen hier.
erstmal ein großes DANKE an euer Durchhaltevermögen

(möge es noch lange anhalten

)
@Pelagio
das mit dem +1 hab eich auch schon bemerkt......nur noch nicht kappiert was der da zusammen rechnet???
Natürlich muss die Variable Teiler und Mittelwert immer auf 0 gesetzt werden wenn #Button_0 gedrückt wird.
Und wie geht das?
Wenn ich das dann mit dem Teiler und Mittelwert auf 0 setzen hin bekommen habe dann wäre die Berechnung ja schon mal super.
Aber was eben schön wäre ist die Geschichte von gestern:
z.B.
Zahl 1 und 3 und 5 eingeben und Berechnen drücken. Dann soll eine Meldung kommen>>>Geben Sie Zahl 2 ein<<< Berechnen drücken. Wieder soll eine Meldung kommen >>> Geben Sie Zahl 4 ein<<<.
Also es soll immer eine Meldung kommen wenn unterhalb des höchsten Eingabefeld, in dem eine Eingabe gemacht wurde, eine Zahl fehlt.
Hier meine neue Kreation mit 6 Eingabefeldern:
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_0
#Button_Close
#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
#STRING_INPUT
EndEnumeration
#CRLF$ = Chr(10)+Chr(13)
LoadFont(0, "Arial", 36)
LoadFont(1, "Arial", 24)
Procedure Open_Window_0()
If OpenWindow(#Window_0, 248, 16, 730, 642, "Kallewirsch Mittelwertrechner", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
SetWindowColor(#Window_0,$FBE6C5)
TextGadget(#TString_0, 300, 50, 450, 250, "Der Mittelwertrechner macht" + #CRLF$ + "mich verrückt")
SetGadgetColor(#TString_0, #PB_Gadget_BackColor,$FBE6C5)
SetGadgetFont(#TString_0, FontID(0))
ButtonGadget(#Button_0, 250, 500, 150, 50, "Berechnen")
ButtonGadget(#Button_Close, 450, 500, 150, 50, "Close")
TextGadget(#TString_1, 40, 30, 160, 20, "Zahl 1 eingeben")
SetGadgetColor(#TString_1, #PB_Gadget_BackColor,$FBE6C5)
StringGadget(#String_0, 40, 50, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_0, FontID(0))
TextGadget(#TString_2, 40, 120, 160, 20, "Zahl 2 eingeben")
SetGadgetColor(#TString_2, #PB_Gadget_BackColor,$FBE6C5)
StringGadget(#String_1, 40, 140, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_1, FontID(0))
TextGadget(#TString_3, 40, 210, 160, 20, "Zahl 3 eingeben")
SetGadgetColor(#TString_3, #PB_Gadget_BackColor,$FBE6C5)
StringGadget(#String_2, 40, 230, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_2, FontID(0))
TextGadget(#TString_4, 40, 300, 160, 20, "Zahl 4 eingeben")
SetGadgetColor(#TString_4, #PB_Gadget_BackColor,$FBE6C5)
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")
SetGadgetColor(#TString_6, #PB_Gadget_BackColor,$FBE6C5)
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")
SetGadgetColor(#TString_7, #PB_Gadget_BackColor,$FBE6C5)
StringGadget(#String_5, 40, 500, 160, 60, "", #PB_String_Numeric)
SetGadgetFont(#String_5, FontID(0))
TextGadget(#TString_5, 250, 300, 280, 20, "Mittelwert der Eingaben")
SetGadgetColor(#TString_5, #PB_Gadget_BackColor,$FBE6C5)
StringGadget(#STRING_INPUT, 250, 320, 450, 50,"", #PB_String_Numeric)
SetGadgetFont(#STRING_INPUT, FontID(1))
EndIf
Repeat
iEvent.i = WaitWindowEvent()
Select iEvent
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
; Nur Mittelwert von 1 und 2 wird berechnet
eingabe1$=GetGadgetText(#String_0)
eingabe2$=GetGadgetText(#String_1)
eingabe3$=GetGadgetText(#String_2)
eingabe4$=GetGadgetText(#String_3)
eingabe5$=GetGadgetText(#String_4)
eingabe6$=GetGadgetText(#STRING_5)
If (eingabe1$<>"")
Teiler + 1
Mittelwert = ValD(eingabe1$)
EndIf
If (eingabe2$<>"")
Teiler + 1
Mittelwert + ValD(eingabe2$)
EndIf
If (eingabe3$<>"")
Teiler + 1
Mittelwert + ValD(eingabe3$)
EndIf
If (eingabe4$<>"")
Teiler + 1
Mittelwert + ValD(eingabe4$)
EndIf
If (eingabe5$<>"")
Teiler + 1
Mittelwert + ValD(eingabe5$)
EndIf
If (eingabe6$<>"")
Teiler + 1
Mittelwert + ValD(eingabe6$)
EndIf
SetGadgetText(#STRING_INPUT,StrD(Mittelwert/Teiler))
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
EndProcedure
Open_Window_0()
@Dysti
Meine Frage von gestern:
wie macht man das wenn alle Felder ausgefüllt sein müssen bevor berechnet werden kann.
funktioniert (fast)
Gib mal in deinem Prg. Zahl 1 , Zahl 2 und danach Zahl 4 ein und lasse berechnen.
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Button_0
#String_0
#String_1
#String_2
#String_3
#STRING_4
#TString_0
#TString_1
#TString_2
#TString_3
#TString_4
#TString_5
#STRING_INPUT
EndEnumeration
#CRLF$ = Chr(13)+Chr(10)
Procedure Open_Window_0()
If OpenWindow(#Window_0, 248, 16, 730, 642, "Kallewirsch Mittelwertrechner", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
TextGadget(#TString_0, 300, 50, 450, 250, " Kallewirsch" + #CRLF$ + "Mittelwertrechner")
ButtonGadget(#Button_0, 40, 440, 150, 50, "Berechnen")
TextGadget(#TString_1, 40, 30, 160, 20, "Zahl 1 eingeben")
StringGadget(#String_0, 40, 50, 160, 60, "", #PB_String_Numeric)
TextGadget(#TString_2, 40, 120, 160, 20, "Zahl 2 eingeben")
StringGadget(#String_1, 40, 140, 160, 60, "", #PB_String_Numeric)
TextGadget(#TString_3, 40, 210, 160, 20, "Zahl 3 eingeben")
StringGadget(#String_2, 40, 230, 160, 60, "", #PB_String_Numeric)
TextGadget(#TString_4, 40, 300, 160, 20, "Zahl 4 eingeben")
StringGadget(#String_3, 40, 320, 160, 60, "", #PB_String_Numeric)
TextGadget(#TString_5, 250, 300, 280, 20, "Mittelwert der Eingaben")
StringGadget(#STRING_INPUT, 250, 320, 450, 50,"", #PB_String_Numeric)
EndIf
Repeat
iEvent.i = WaitWindowEvent()
Select iEvent
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
; Nur Mittelwert von 1 und 2 wird berechnet
eingabe1$=GetGadgetText(#String_0)
eingabe2$=GetGadgetText(#String_1)
eingabe3$=GetGadgetText(#String_2)
eingabe4$=GetGadgetText(#String_3)
If Len(eingabe1$)<1
MessageRequester("Fehler","Es muß eine Eingabe im Feld 1 gemacht werden")
Else
If Len(eingabe2$)>1
;MessageRequester("Fehler","Zur Berechnung muß ein Wert in Feld 2 angegeben werden")
;Else
Mittelwert = ValD(eingabe1$) + ValD(eingabe2$)
Teiler=2
EndIf
If Len(eingabe3$)>=1
Mittelwert = ValD(eingabe1$) + ValD(eingabe2$) + ValD(eingabe3$)
Teiler=3
EndIf
If Len(eingabe4$)>=1
Mittelwert = ValD(eingabe1$) + ValD(eingabe2$) + ValD(eingabe3$) + ValD(eingabe4$)
Teiler=4
EndIf
EndIf
If Teiler=4
SetGadgetText(#STRING_INPUT,StrD(Mittelwert/Teiler))
Else
;hier spring das PRG hinein, wenn der Wert von Teile kleiner 4 ist
;also sind nicht alle Felder ausgefüllt
MessageRequester("Fehler","Es muß in jedem Feld eine Eingabe gemacht werden")
EndIf
Teiler=0
EndSelect
EndSelect
Until iEvent = #PB_Event_CloseWindow
EndProcedure
Open_Window_0()
@Kaeru Gaman
diese Farben sehen nicht nur scheußlich aus, sie sind auch absolut unnötig und es besteht schlicht nicht die geringste Veranlassung einen Einsteiger mit so etwas zu belasten.
Für mich war das keine Belastung....im Gegenteil ....so lernt man noch nebenher etwas anderes.
Dies ist ja nur eine einfache "Farbendemo".
Du hast natürlich Recht, man sollte eine Frage nicht mit einem Mega-Code beantworten.....aber die Farbdemo war ok.
So....genug geschrieben für heute.
Gruß
Kallewirsch