Seite 1 von 1
GetGadgetState und SetGadgetState
Verfasst: 26.03.2005 14:41
von Gamer
Ich habe 2 ComboBoxen die mit gleichen Werten gefüllt sind.
Bei Änderung einer Box soll immer überprüft werden,
ob #von nicht größer als #bis ist sowie ob #bis nicht
kleiner als #von ist:
Code: Alles auswählen
If EventID = #PB_Event_Gadget
If EventGadgetID()=#von Or EventGadgetID()=#bis
If GetGadgetState(#von)>GetGadgetState(#bis)
SetGadgetState(#von,GetGadgetState(#von))
ElseIf GetGadgetState(#bis)<GetGadgetState(#von)
SetGadgetState(#bis,GetGadgetState(#von))
EndIf
EndIf
Funktioniert aber leider noch nicht ganz

Verfasst: 26.03.2005 15:37
von Franky
Soll das hier
Code: Alles auswählen
If GetGadgetState(#von)>GetGadgetState(#bis)
SetGadgetState(#von,GetGadgetState(#von))
vielleicht
Code: Alles auswählen
If GetGadgetState(#von)>GetGadgetState(#bis)
SetGadgetState(#von,GetGadgetState(#bis))
heißen?
Verfasst: 26.03.2005 16:02
von Gamer
Okay, das wäre schon mal der eine Fehler... geht trotzdem irgendwie nur manchmal:
Code: Alles auswählen
Enumeration
#Window_0
#von
#bis
EndEnumeration
OpenWindow(#Window_0,0,0,599,380,#PB_Window_SystemMenu,"")
CreateGadgetList(WindowID())
ComboBoxGadget(#von, 460, 130, 40, 100)
ComboBoxGadget(#bis, 540, 130, 40, 100)
For von=10 To 100 : AddGadgetItem(#von,-1, Str(von)): AddGadgetItem(#bis,-1, Str(von)) : Next
SetGadgetState(#von,0)
SetGadgetState(#bis,50)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
If EventGadgetID()=#von Or EventGadgetID()=#bis
If GetGadgetState(#von)>GetGadgetState(#bis)
SetGadgetState(#von,GetGadgetState(#bis))
ElseIf GetGadgetState(#bis)<GetGadgetState(#von)
SetGadgetState(#bis,GetGadgetState(#von))
EndIf
EndIf
EndIf
Until WaitWindowEvent() = #PB_EventCloseWindow
End
Verfasst: 26.03.2005 16:43
von Gamer
If GetGadgetState(#bis)<GetGadgetState(#von)
SetGadgetState(#bis,GetGadgetState(#von))
EndIf
Das ist die Lösung!

Denn zuerst wählt der User ja meist "#bis" aus, kann ja sein er will mit Wert 70 starten und Höchstwert 90 auswählen.
Das würde die alte Schleife verhindern und man müßte erst den Maximalwert auswählen...