Seite 1 von 1
Mehrere Checkboxen abfragen
Verfasst: 04.03.2005 14:00
von Belgarath
Ich schreibe gerade eine kleine Datenbank und möchte eine erweiterte Suchfunktion einbauen.
Das Ganze hatte ich mir so vorgestellt, daß man per Checkboxgadget angeben kann, wonach der Inhalt der DB gefiltert wird. Dummerweise sind das so in etwa 50 Checkboxen.
Nun würde ich gerne wissen, ob es eine einfache und schnelle Möglichkeit gibt, um den Status jeder einzelnen Checkbox heraus zu bekommen. Oder muß ich für jede CB GetGadgetState() benutzen?
Verfasst: 04.03.2005 14:12
von bluejoke
Du kannst dafür ja eine Schleife machen.
Eine andere Möglichkeit gibts glaub nicht.
Verfasst: 04.03.2005 14:48
von Belgarath
Hm, das hatte ich befürchtet. Da ich #PB_Any benutzt habe, könnte das mit der Schleife schwierig werden.
Da hilft wohl doch nur jede einzeln abzufragen

Verfasst: 04.03.2005 14:50
von freedimension
Belgarath hat geschrieben:Hm, das hatte ich befürchtet. Da ich #PB_Any benutzt habe, könnte das mit der Schleife schwierig werden.
Das muss es nicht heißen. Was benutzt du denn um die GadgetIDs zu speichern? Eine Linked List oder ein Array? Beides könntest du dann ja mit einer For- bzw. ForEach-Schleife durchlaufen.
Gruß
Mirko
Verfasst: 04.03.2005 15:36
von Leo
Hier mal ein kleines Beispiel, wie dus machen könntest
Code: Alles auswählen
Structure CheckBoxInfo
OldState.l
ID.l
EndStructure
NewList CheckBoxes.CheckBoxInfo()
hWnd = OpenWindow(0,0,0,470,40,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"Titel!!!")
CreateGadgetList(hWnd)
For I = 0 To 2
AddElement(CheckBoxes())
CheckBoxes()\ID = CheckBoxGadget(#PB_Any,10+I*200,10,180,20,"Text "+Str(I))
Next
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = #True
EndSelect
ForEach CheckBoxes()
If GetGadgetState(CheckBoxes()\ID) <> CheckBoxes()\OldState
Debug "Name: "+GetGadgetText(CheckBoxes()\ID)
Debug "State: "+Str(GetGadgetState(CheckBoxes()\ID))
EndIf
CheckBoxes()\OldState = GetGadgetState(CheckBoxes()\ID)
Next
Until Quit = #True
Verfasst: 04.03.2005 15:51
von Belgarath
@freedimension
Klar, ich Sepp hab mal wieder den Wald vor lauter Bäumen nicht gesehen. Machs jetzt mit einem Array und funzt auch. Danke für den Tip!
@Leo
Auch dir ein herzliches Danke. Der Code funktioniert, nur leider hab ich mich mit LL noch nicht so sonderlich auseinander gesetzt, deshalb werde ich es erstmal mit einem Array versuchen.