Seite 3 von 5

Re: Ergebnis anzeigen?

Verfasst: 25.02.2010 14:43
von dysti
Pelagio, dein Wert Teiler zählt mit +1 immer höher. Ich hatte den Wert schon bei über 1000.
Gut zu sehen, wenn man den Debugger einschaltet.

Re: Ergebnis anzeigen?

Verfasst: 25.02.2010 14:44
von dysti
Hier der reine Code:

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()

Re: Ergebnis anzeigen?

Verfasst: 25.02.2010 15:43
von Pelagio
Du hast recht dysti,

das kommt davon wenn man etwas übers Bein bricht.
Natürlich muss die Variable Teiler und Mittelwert immer auf 0 gesetzt werden wenn #Button_0 gedrückt wird.

Re: Ergebnis anzeigen?

Verfasst: 25.02.2010 23:55
von Kallewirsch
Hallo an Dysti , Pelagio , Kaeru Gaman und natürlich auch an die anderen hier.

erstmal ein großes DANKE an euer Durchhaltevermögen :allright: (möge es noch lange anhalten :mrgreen: )

@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

Re: Ergebnis anzeigen?

Verfasst: 26.02.2010 00:11
von Kallewirsch
Hi Pelagio,

Problem 1 gelöst:

Habe es rausgefunden mit Teiler und Mittelwert auf 0 setzen.

Gruß
Kallewirsch

Re: Ergebnis anzeigen?

Verfasst: 26.02.2010 01:33
von Andreas21
Meinst du sowas?

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration

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

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 0, 0, 730, 642, "Kallewirsch Mittelwertrechner",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar )
  
    TextGadget(#TString_0, 300, 50, 450, 250, "    Kallewirsch" + Chr(13)+Chr(10) + "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)
     
    Repeat
      ok = 0
      Event = WaitWindowEvent()
      Gadget = EventGadget()
      If Event = #PB_Event_Gadget
        If Gadget = #Button_0
          eingabe1$=GetGadgetText(#String_0)
          eingabe2$=GetGadgetText(#String_1)
          eingabe3$=GetGadgetText(#String_2)
          eingabe4$=GetGadgetText(#String_3)
          If eingabe1$ And eingabe2$ And eingabe3$ And eingabe4$
            Mittelwert = ValD(eingabe1$) + ValD(eingabe2$)
            Mittelwert+  ValD(eingabe3$) + ValD(eingabe4$)
            SetGadgetText(#STRING_INPUT,StrD(Mittelwert/4))
            ok = 1
          EndIf
          If ok = 0
            SetGadgetText(#STRING_INPUT,"")
            MessageRequester("Fehler","Es muß in jedem Feld eine Eingabe gemacht werden")
          EndIf
        EndIf
      EndIf
    Until iEvent = #PB_Event_CloseWindow
  EndIf
EndProcedure

Open_Window_0()

Re: Ergebnis anzeigen?

Verfasst: 26.02.2010 13:38
von dysti
Hallo Kallewirsch,
habe die Änderungen gemacht. Habe deinen zuletzt geposteten Code genommen, damit wir eine klare Linie haben.

Die Variable SetContol steuert die Abfrage, ob irgendein Feld bei der Berechnung leer war und ist am Anfang auf 0.
Sobald ein Feld bei der Berechnung leer ist, wird die Fehlermeldung aufgerufen und SetControl auf 1 gesetzt.
Damit werden alle folgenden Fehlermeldung außer Kraft gesetzt, also nicht mehr angezeigt.
Am Anfang der Eventschleife wird SetControl wieder auf 0 gesetzt und damit wird wieder ein definierter Zustand hergestellt.

Wenn du alle Else-Abfragen wegläßt, erscheint nur eine generelle Fehlermeldung.

Dann viel Spaß beim proggen.

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)
SetControl=0

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
           SetControl=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$)
            Else
            If SetControl=0
            MessageRequester("Eingabefehler","Feld 1 muß ausgefüllt werden!")
            SetControl=1
            EndIf
            EndIf
           
            If (eingabe2$<>"") 
               Teiler + 1
               Mittelwert + ValD(eingabe2$)
            Else
            If SetControl=0
            MessageRequester("Eingabefehler","Feld 2 muß ausgefüllt werden!")
            SetControl=1
            EndIf
            EndIf
           
            If (eingabe3$<>"") 
               Teiler + 1
               Mittelwert + 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/Teiler))
            Else
            MessageRequester("Fehler","Es müssen alle Felder ausgefüllt werden!")
            EndIf
           
            Teiler=0       

           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()

Re: Ergebnis anzeigen?

Verfasst: 26.02.2010 15:14
von Andreas21
Warum den z.b.

Code: Alles auswählen

If (eingabe5$<>"")
ist doch das selbe wie

Code: Alles auswählen

If eingabe5$
Und das mit den Font und color ... glaube das ist bissel zu viel.
Das macht den Code nur unötieg groß und undurchsichtiger.
Für Anfänger ungeeignet.
Es soll doch herausfinden wie er das abfragen kann.

Man kann so doch auch so machen, wenn es nur gehn soll wenn alle zahlen vorhanden sind.
Das geht in einer einziege if bedinung und der code ist übersichtlicher.

Code: Alles auswählen

if eingabe1$ and eingabe2$ and eingabe3$ ......

Re: Ergebnis anzeigen?

Verfasst: 26.02.2010 18:11
von dysti
Hallo Andreas21,
"If (eingabe5$<>"")" ist doch das selbe wie "If eingabe5$" :?
Da hast du völlig recht. In diesem Fall würde ich das von Pelagio verwendete Format ruhig so stehen lassen, weil das einsichtiger ist.
"Und das mit den Font und color ... glaube das ist bissel zu viel."
Das sollten wir nicht weiter abhandeln. Kallewirsch hat sich ja dafür entschieden, sonst hätte er den Code ohne die Color-Befehle genommen, den ich ja auch gepostet habe.
Wie dem auch sei. Dazu hat sich Kallewirsch ja schon geäußert.
"Das geht in einer einziege if bedinung und der code ist übersichtlicher."
Wenn es nur um diese Abfragen ginge, gebe ich dir auch hier völlig recht.
Nach der neuen Fragestellung von Kallewirsch geht es so aber nicht mehr.
Desweiteren wollte ich nicht wieder etwas anderes einbringen und das was Pelagio da gemacht hat, muß Kallewirsch wohl gefallen haben, sonst hätte er es nicht übernommen.

Re: Ergebnis anzeigen?

Verfasst: 26.02.2010 23:44
von Kallewirsch
Hallo zusammen,

hi Dysti und Andreas,

die Prg. von euch sind genau das was ich wollte. Respekt! :allright: (will das auch mal können).

Wenn ich mir eure Prg. anschaue denke ich immer,......ja....genau....logisch.....aber selbst dahinter zu kommen>>>>das ist noch mein Problem.



So.....(bin ja ständig am üben) .....die nächste Frage:

Habe noch ein Fenster rein gemacht:

Berechnung vom " Mittelwert x 100 "

Habe ich das so richtig gemacht? Oder gibt es noch ne andere/bessere/richtigere Variante?


Frage 2 (mir fällt immer was ein :mrgreen: )


Nehmen wir an das Zahl 1 bis 6 eingegeben und berechnet wurden.

Wie lösche ich die Ergebnisfelder?

(Beispiel)

Wert von Zahl 1 bis 6 wurde berechnet.

In Eingabefeld 4 wird eine neue Eingabe gemacht>>>>>nun soll das Ergebniss vom Fenster "Mittelwert" und das Ergebnis vom Fenster "Mittelwert x100" verschwinden(inklusive der Hintergrundfarbe....Dysti, Du hast es nicht anders gewollt :mrgreen: ), und erst nach erneutem drücken des Button "Berechnen" wieder dargestellt werden.

Also...schon mal Danke (schicke euch mal ein virtuelles Bierchen zu......)

Grüß und schönes Wochenende
Kallewirsch