GetGadgetState und SetGadgetState

Anfängerfragen zum Programmieren mit PureBasic.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

GetGadgetState und SetGadgetState

Beitrag 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 :-(
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag 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?
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag 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
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

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