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...