ListIconGadget mit CheckBoxes

Anfängerfragen zum Programmieren mit PureBasic.
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

ListIconGadget mit CheckBoxes

Beitrag von ThoPie »

Hallo,
ich stehe schon wieder auf dem Schlauch. Ich habe folgende Prozedur:

Code: Alles auswählen

Procedure FehlzeitenMarkieren(ST.b)
  For i=0 To CountGadgetItems(#liiFehlzeiten)-1
    If ST=0
      SetGadgetItemState(#liiFehlzeiten,i,0)
    ElseIf ST=1
      SetGadgetItemState(#liiFehlzeiten,i,#PB_ListIcon_Checked)
    EndIf
  Next i
EndProcedure
Wenn ich die Prozedur mit dem Parameter 0 aufrufe sollen alle CheckBoxes demarkiert werden und mit dem Parameter 1 alle CheckBoxes markiert werden.
In meinem Fall werden aber stets die Checkboxes deaktiviert. Was habe ich falsch gemacht?
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Check mal (über eine Debug-Ausgabe), was die Proc bei Dir bekommt, dann bei mir klappts:

Code: Alles auswählen

#liiFehlzeiten =0

Procedure FehlzeitenMarkieren(ST.b)
  For i=0 To CountGadgetItems(#liiFehlzeiten)-1
    If ST=0
      SetGadgetItemState(#liiFehlzeiten,i,0)
    ElseIf ST=1
      SetGadgetItemState(#liiFehlzeiten,i,#PB_ListIcon_Checked)
    EndIf
  Next i
EndProcedure 

If OpenWindow(#liiFehlzeiten, 100, 100, 300, 200, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
  If CreateGadgetList(WindowID(#liiFehlzeiten))
    ListIconGadget(0, 5, 5, 290, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_CheckBoxes)
    AddGadgetColumn(0, 1, "Address", 250)
    AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
    AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
     
    ButtonGadget(1,10,120,100,30,"check all")

    ButtonGadget(2,120,120,100,30,"uncheck all")

    Repeat
      Event = WaitWindowEvent()
       
      If event = #PB_Event_Gadget
        EventGadget = EventGadget()
        If EventGadget = 1
          FehlzeitenMarkieren(1)
        ElseIf EventGadget = 2
          FehlzeitenMarkieren(0)
        EndIf              
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten