Procedure wird in der Eventschleife zwei mal aufgerufen
Verfasst: 14.01.2013 11:22
Hallo,
sitze schon stundenlang und kann den Fehler nicht einkreisen.
Folgendes Problem:
Die Procedure Auswahl() wird zweimal aufgerufen, wenn man "1 Banane" auswählt.
Wird innerhalb der Procedure Auswahl() das SetGadgetText aktiviert, dann werden die "Mengen" nicht mehr angezeigt.
Warum werden die "Mengen nicht angezeigt?
Warum wird die Procedure Auswahl() zweimal aufgerufen?
sitze schon stundenlang und kann den Fehler nicht einkreisen.
Folgendes Problem:
Die Procedure Auswahl() wird zweimal aufgerufen, wenn man "1 Banane" auswählt.
Wird innerhalb der Procedure Auswahl() das SetGadgetText aktiviert, dann werden die "Mengen" nicht mehr angezeigt.
Warum werden die "Mengen nicht angezeigt?
Warum wird die Procedure Auswahl() zweimal aufgerufen?
Code: Alles auswählen
Enumeration
#window_0
EndEnumeration
Enumeration
#enter_Taste
#Auswahl1
#Auswahl2
#Auswahl3
#Auswahl4
#Auswahl5
#Ueberschrift
#Mask
#Maske
#Text1
#Obst1
#Obst2
#Obst3
#Obst4
#Menge1
#Menge2
#Menge3
#Menge1a
#Menge1b
#Menge1c
EndEnumeration
Procedure aufbau()
StringGadget(#Auswahl1,-50,50,50,50,"")
StringGadget(#Auswahl2,-50,50,50,50,"",#PB_String_UpperCase)
StringGadget(#Auswahl3,-50,50,50,50,"")
StringGadget(#Auswahl4,-50,50,50,50,"")
StringGadget(#Auswahl5,-50,50,50,50,"")
TextGadget(#Obst1,25,180,300,40,"Was möchten Sie haben?")
TextGadget(#Obst2,400,180,450,40,"1 - Banane")
TextGadget(#Obst3,400,220,450,40,"2 - Apfel")
TextGadget(#Obst4,400,260,450,40,"3 - Birnen")
TextGadget(#Menge1,25,320,600,40,"Wählen Sie die Menge aus")
TextGadget(#Menge1a,400,320,200,40,"A - 1 kg")
TextGadget(#Menge1b,400,355,300,40,"B - 5 kg")
TextGadget(#Menge1c,400,390,150,40,"C - 50 kg")
HideGadget(#Auswahl2,1)
HideGadget(#Auswahl3,1)
HideGadget(#Auswahl4,1)
HideGadget(#Auswahl5,1)
HideGadget(#Menge1,1)
HideGadget(#Menge1a,1)
HideGadget(#Menge1b,1)
HideGadget(#Menge1c,1)
SetActiveGadget(#Auswahl1)
EndProcedure
Procedure Auswahl()
Debug "Aufruf der Procedure Auswahl()"
HideGadget(#Auswahl1,1)
HideGadget(#Auswahl2,0)
HideGadget(#Menge1,0)
HideGadget(#Menge1a,0)
HideGadget(#Menge1b,0)
HideGadget(#Menge1c,0)
;SetGadgetText(#Auswahl1,"") verhindert den zweimaligen Aufruf, aber dann werden die Gadgets nicht angezeigt??????
SetActiveGadget(#Auswahl2)
EndProcedure
;- Start
If OpenWindow(#Window_0, 0, 0, 1060, 535,"Test")
Aufbau()
EndIf
;- Anfang Schleife
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
CloseWindow(#window_0): Break
Case #PB_Event_Gadget
Select EventGadget()
Case #Auswahl1 ; Gadget Auswahl hat den Fokus erhalten
If GetGadgetText(#Auswahl1)="1"
Debug "1 ausgewählt"
auswahl()
ElseIf GetGadgetText(#Auswahl1)="2"
Debug "2 ausgewählt"
ElseIf GetGadgetText(#Auswahl1)="3"
Debug "3 ausgewählt"
Else ; was passiert, wenn ein Wert eingegeben wird, der nicht verarbeitet wird?
;Debug "Falsche Auswahl, die gibt es nicht!"
SetGadgetText(#Auswahl1,"")
SetActiveGadget(#Auswahl1)
EndIf ; If-Schleife - Ende
Case #Auswahl2
If GetGadgetText(#Auswahl2)="A"
Debug "Auswahl 2"
Else
SetGadgetText(#Auswahl2,"")
SetActiveGadget(#Auswahl2)
EndIf
EndSelect ; Ende Select Eventgadget()
EndSelect ; Ende WaitWindowEvent()
ForEver