Seite 2 von 4

Verfasst: 09.04.2008 11:38
von The_Dark_Zim-.-
Ohman, drücke ich mich so schlecht aus, das es keiner versteht ?????? :roll:
Ich sollte in den Code ordnung rein bringen und das hab ich gemacht!
Ich hab aber auch die Buttons (im Code) so ansortiert wie sie zusammen gehören. Nicht wie es vorher wa, das z.B. der Button für 9 oben stand und der für 1 darunter.

Verfasst: 09.04.2008 11:50
von Kaeru Gaman
*kicher* yo, Fluid, das war ein bissiger Kommentar.

@Zim
"weil wegen" ist nunmal eine sinnlose aneinanderreihung von subjunktionen,
und fordert daher zum gelächter auf.

zu deinem aktuellen problem:
nein, es gibt keinen grund warum die reihenfolge eine rolle spielen sollte, zumindest in diesem fall.
es gibt andere fälle in der programmierung, wo die reihenfolge eine gravierende rolle spielt.
aber bei der abfolge von simplen "key=?" überprüfungen ist das wirklich schnuppe.

btw... guck dir mal
Select ... Case ... EndSelect
an.
...dass das noch keiner gesagt hat, was ist los mit euch, Kollegen?

Verfasst: 09.04.2008 11:52
von Kiffi
The_Dark_Zim-.- hat geschrieben:Ohman, drücke ich mich so schlecht aus, das es keiner versteht ?????? :roll:
Wenn Du so direkt fragst: Ja, Deine Ausdrucksweise ist verbesserungs-
würdig. Beim Lesen muss man einiges an Interpolationsarbeit leisten, damit
man in etwa versteht, was Du vielleicht meinen könntest.
The_Dark_Zim-.- hat geschrieben:Ich sollte in den Code ordnung rein bringen und das hab ich gemacht!
die Reihenfolge der Konstanten innerhalb der Enumeration ist unwichtig. Mir
scheint, dass Du beim Aufräumen weitere Fehler in Deinen Code eingebaut
hat.

Grüße ... Kiffi

Verfasst: 09.04.2008 12:04
von The_Dark_Zim-.-
HM mist, dann seh ich mir die Sache nochmal gründlich an.
Und ich werde in zukunft versuchen mich besser aus zu drücken.

@Kaeru Gaman
das "weil wegen" Sinnlos ist wa mir kla ;)
hatte blos gedacht das er es nicht versteht ^^ naja ist ja auch egal.

Verfasst: 09.04.2008 12:17
von Fluid Byte
The_Dark_Zim-.- hat geschrieben:HM mist, dann seh ich mir die Sache nochmal gründlich an.
Und ich werde in zukunft versuchen mich besser aus zu drücken.
Tue er dies und Ihm möge geholfen werden.
The_Dark_Zim-.- hat geschrieben:hatte blos gedacht das er es nicht versteht ^^ naja ist ja auch egal.
Ich habe es auch nicht verstanden. Der Satz war mehr oder weniger sinnfrei. Bei sowas hab ich ehrlich gesagt auch kein Bock den Post wieder und wieder durchzulesen um am Ende trotzdem zu raten. Wie gesagt, keiner erwartet das du uns den Konrad Duden machst aber 'nen bissi mehr auf die Zusammenhänge achten und es wird wesentlich einfacher dir schnell zu helfen anstatt immer nachfragen zu müssen.

Verfasst: 09.04.2008 12:25
von Kiffi
The_Dark_Zim-.- hat geschrieben:HM mist, dann seh ich mir die Sache nochmal gründlich an.
mein Tipp: Fang noch mal von vorne an. Nimm den Ursprungscode und
verwende "Suchen und Ersetzen", ausgehend von #Button_17 bis runter zu
#Button_0 (wenn Du es umgekehrt machst, dann bekommst Du zwangsläufig
Fehler).

Dann versuche mal, Deinen Code vernünftig einzurücken. Danach kannst Du
ausprobieren, Deine "ElseIf GadgetID"-Orgie durch das (meiner Meinung
nach) übersichtlichere Select - Case auszutauschen.

So solltest Du einen übersichtlichen Code erhalten, mit dem Du dann
weiterarbeiten kannst (den eigentlichen Fehler suchen).

Grüße ... Kiffi

Verfasst: 09.04.2008 14:20
von The_Dark_Zim-.-
So nu hab ich den Fehler raus :)

Das mit den Cases ist mir nu zu umständlich darum lass ich das erstmal so ;)

Hier mein aktueller Code:

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #String_0
  #Button_0
  #Button_1
  #Button_2
  #Button_3
  #Button_4
  #Button_5
  #Button_6
  #Button_7
  #Button_8
  #Button_9
  #Button_10
  #Button_11
  #Button_12
  #Button_13
  #Button_14
  #Button_15
  #Button_16
  #Button_17
EndEnumeration

Global FontID1
FontID1 = LoadFont(1, "Arial", 10, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 14)
Global FontID3
FontID3 = LoadFont(3, "Arial", 22)

InitKeyboard() And InitSprite()

  If OpenWindow(#Window_0, 511, 245, 518, 548, "Rechner",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered ) 
   If OpenWindowedScreen(WindowID(0), 511, 245, 518, 548, 0, 0, 0) 
    If CreateGadgetList(WindowID(#Window_0))
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      ButtonGadget(#Button_0, 20, 140, 60, 60, "CE")
      SetGadgetFont(#Button_0, FontID2)
      ButtonGadget(#Button_1, 100, 140, 60, 60, "/")
      SetGadgetFont(#Button_1, FontID2)
      ButtonGadget(#Button_2, 180, 140, 60, 60, "X")
      SetGadgetFont(#Button_2, FontID2)
      ButtonGadget(#Button_3, 20, 220, 60, 60, "7")
      SetGadgetFont(#Button_3, FontID2)
      ButtonGadget(#Button_4, 100, 220, 60, 60, "8")
      SetGadgetFont(#Button_4, FontID2)
      ButtonGadget(#Button_5, 180, 220, 60, 60, "9")
      SetGadgetFont(#Button_5, FontID2)
      ButtonGadget(#Button_6, 20, 300, 60, 60, "4")
      SetGadgetFont(#Button_6, FontID2)
      ButtonGadget(#Button_7, 100, 300, 60, 60, "5")
      SetGadgetFont(#Button_7, FontID2)
      ButtonGadget(#Button_8, 180, 300, 60, 60, "6")
      SetGadgetFont(#Button_8, FontID2)
      ButtonGadget(#Button_9, 260, 140, 60, 60, "-")
      SetGadgetFont(#Button_9, FontID3)
      ButtonGadget(#Button_10, 260, 220, 60, 140, "+")
      SetGadgetFont(#Button_10, FontID2)
      ButtonGadget(#Button_11, 260, 380, 60, 140, "OK")
      SetGadgetFont(#Button_11, FontID2)
      ButtonGadget(#Button_12, 180, 380, 60, 60, "3")
      SetGadgetFont(#Button_12, FontID2)
      ButtonGadget(#Button_13, 100, 380, 60, 60, "2")
      SetGadgetFont(#Button_13, FontID2)
      ButtonGadget(#Button_14, 20, 380, 60, 60, "1")
      SetGadgetFont(#Button_14, FontID2)
      ButtonGadget(#Button_15, 20, 460, 140, 60, "0")
      SetGadgetFont(#Button_15, FontID2)
      ButtonGadget(#Button_16, 180, 460, 60, 60, ",")
      SetGadgetFont(#Button_16, FontID3)
      ButtonGadget(#Button_17, 390, 460, 110, 60, "EXIT")
      SetGadgetFont(#Button_17, FontID2)
    EndIf
   EndIf
  EndIf

Repeat
  
  Event = WaitWindowEvent()
  
  WindowID = EventWindow() 
  
  GadgetID = EventGadget() 
  
  EventType = EventType() 
    
ExamineKeyboard()

If KeyboardPushed (1)
  End
EndIf  

  If Event = #PB_Event_Gadget
    If GadgetID = #String_0

ElseIf GadgetID = #Button_0 ;CE

      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)

;_________________________________________________________________________________________________________________________

ElseIf GadgetID = #Button_15 ;0
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf    
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=0
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 0
    
    EndIf
  
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"0")
     SetGadgetFont(#String_0, FontID2) 
    0:
 
ElseIf GadgetID = #Button_14 ;1

     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
     

    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=1
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 1
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"1")
     SetGadgetFont(#String_0, FontID2) 
    1:
    
ElseIf GadgetID = #Button_13 ;2
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf    
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=2
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 2
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"2")
     SetGadgetFont(#String_0, FontID2) 
    2:
    
ElseIf GadgetID = #Button_12 ;3
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=3
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 3
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"3")    
     SetGadgetFont(#String_0, FontID2) 
    3:
    
ElseIf GadgetID = #Button_6 ;4
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=4
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2)  
    Goto 4
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"4")
     SetGadgetFont(#String_0, FontID2) 
    4:

ElseIf GadgetID = #Button_7 ;5
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
   
     x.f=5
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 5
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"5")
     SetGadgetFont(#String_0, FontID2) 
    5:

ElseIf GadgetID = #Button_8 ;6
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=6

     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 6
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"6")
     SetGadgetFont(#String_0, FontID2) 
    6:
    
ElseIf GadgetID = #Button_3 ;7
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
      
     x.f=7

     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2)
    Goto 7
      
    EndIf
     
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"."+"7")
     SetGadgetFont(#String_0, FontID2)
    7:
    
ElseIf GadgetID = #Button_4 ;8
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
     
     x.f=8

     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2)
    Goto 8
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"8")
     SetGadgetFont(#String_0, FontID2) 
    8:
    
ElseIf GadgetID = #Button_5 ;9
    
     If v=1
      
      StringGadget(#String_0, 20, 40, 480, 30, "")
      SetGadgetFont(#String_0, FontID2)
      
      v=0
    
     EndIf
    
    x.f=ValF(GetGadgetText(#string_0))
    
      If x.f =0
    
     x.f=9
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f))
     SetGadgetFont(#String_0, FontID2) 
    Goto 9
    
    EndIf
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x.f)+"9")
     SetGadgetFont(#String_0, FontID2) 
    9:
;_________________________________________________________________________________________________________________________

ElseIf GadgetID = #Button_16 ;,

   x.f=ValF(GetGadgetText(#string_0))
    
     StringGadget(#String_0, 20, 40, 480, 30, Str(x)+".")
     SetGadgetFont(#String_0, FontID2) 
   
ElseIf GadgetID = #Button_17

    End
   
ElseIf GadgetID = #Button_1 ;/

v=0

     a.f=1
     b.f=0
     c.f=0
     d.f=0
     
     SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
     f.f=ValF(GetGadgetText(#string_0))
   
     StringGadget(#String_0, 20, 40, 480, 30, "")
     SetGadgetFont(#String_0, FontID2)

ElseIf GadgetID = #Button_2 ;x

v=0

     a.f=0
     b.f=1
     c.f=0
     d.f=0
   
     SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
     f.f=ValF(GetGadgetText(#string_0))
   
     StringGadget(#String_0, 20, 40, 480, 30, "")
     SetGadgetFont(#String_0, FontID2)
     
ElseIf GadgetID = #Button_9 ;-

v=0
   
     a.f=0
     b.f=0
     c.f=1
     d.f=0
    
     SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
     f.f=ValF(GetGadgetText(#string_0))
   
     StringGadget(#String_0, 20, 40, 480, 30, "")
     SetGadgetFont(#String_0, FontID2)
   
ElseIf GadgetID = #Button_10 ;+

v=0
   
     a.f=0
     b.f=0
     c.f=0
     d.f=1
    
     SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
     f.f=ValF(GetGadgetText(#string_0))
   
     StringGadget(#String_0, 20, 40, 480, 30, "")
     SetGadgetFont(#String_0, FontID2)
   
ElseIf GadgetID = #Button_11 ;ok
    
    SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
    g.f=ValF(GetGadgetText(#string_0))
 
 v=1  

;_________________________________________________________________________________________________________________________

   If c=1
   
    e.f=f.f-g.f
    StringGadget(#String_0, 20, 40, 480, 30, StrF(e.f,2))
    SetGadgetFont(#String_0, FontID2)
   
   EndIf
   
   If a=1
   
    e.f=f.f/g.f
    StringGadget(#String_0, 20, 40, 480, 30, StrF(e.f,2))
    SetGadgetFont(#String_0, FontID2)
   
   EndIf
   
   If b=1
   
    e.f=f.f*g.f
    StringGadget(#String_0, 20, 40, 480, 30, StrF(e.f,2))
    SetGadgetFont(#String_0, FontID2)
   
   EndIf
   
   If d=1
   
    e.f=f.f+g.f
    StringGadget(#String_0, 20, 40, 480, 30, StrF(e.f,2))
    SetGadgetFont(#String_0, FontID2)
   
   EndIf
;_________________________________________________________________________________________________________________________
EndIf

If KeyboardPushed (#PB_Key_Decimal)
 a.f=1
 b.f=0
 c.f=0
 d.f=0

  SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
  f.f=ValF(GetGadgetText(#string_0))
   
   StringGadget(#String_0, 20, 40, 480, 30, "")
   SetGadgetFont(#String_0, FontID2)
   
EndIf  

If KeyboardPushed (#PB_Key_Divide)
 a.f=0
 b.f=1
 c.f=0
 d.f=0
 
  SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
  f.f=ValF(GetGadgetText(#string_0))
   
   StringGadget(#String_0, 20, 40, 480, 30, "")
   SetGadgetFont(#String_0, FontID2)
   
EndIf

If KeyboardPushed (#PB_Key_Subtract)

 a.f=0
 b.f=0
 c.f=1
 d.f=0
 
  SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
  f.f=ValF(GetGadgetText(#string_0))
   
   StringGadget(#String_0, 20, 40, 480, 30, "")
   SetGadgetFont(#String_0, FontID2)

EndIf

If KeyboardPushed (#PB_Key_Add)
 a.f=0
 b.f=0
 c.f=0
 d.f=1
 
  SetGadgetText(0, ReplaceString(GetGadgetText(0),",","."))
  f.f=ValF(GetGadgetText(#string_0))
   
   StringGadget(#String_0, 20, 40, 480, 30, "")
   SetGadgetFont(#String_0, FontID2)
   
 EndIf
EndIf

Until Event = #PB_Event_CloseWindow 
End
hoffe das er nun besser zu lesen ist.

Verfasst: 09.04.2008 14:25
von Kaeru Gaman
.....und funktioniert er?

nach dem einführen der besseren lesbarkeit solltest du selbst ihn erst noch mal lesen.

Verfasst: 09.04.2008 14:35
von Fluid Byte
Schon mal als kleiner Tipp am Rande:

Du brauchst nicht für jedes Gadget einzeln mit SetGadgetFont() die Schrift ändern. Beim Parameter der das Gadget festlegt kannst du #PB_Default angeben. Dann benutzen alle Gadgets die danach erstellt werden diese Schriftart.

Verfasst: 09.04.2008 14:50
von The_Dark_Zim-.-
Hm das merk ich mir für das nächste Prog. ;)
thx

ich hab noch was am Code geändert.
Nun geht das mit der Zahlen eingabe nach der Berechnung richtig.