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?
Mehrere Checkboxen abfragen
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
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.Belgarath hat geschrieben:Hm, das hatte ich befürchtet. Da ich #PB_Any benutzt habe, könnte das mit der Schleife schwierig werden.
Gruß
Mirko
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
@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.
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.