Seite 1 von 2

ListIcon Checkbox

Verfasst: 04.09.2013 09:05
von Velindos
Hallo Leute,
kann mir jemand helfen, wie ich die Checkbox im ListIcon-Wahl Ein- bzw Ausblenden kann!
Checkbox Einblenden beim Start des Programms:

Code: Alles auswählen

ListIconGadget(0, 4, 83, 657, 221, "0", 24,#PB_ListIcon_CheckBoxes)
Gruss ... Velindos

Re: ListIcon Checkbox

Verfasst: 04.09.2013 09:12
von Shardik
Hast Du schon einmal Fluid Bytes Beispiel ausprobiert?
http://www.purebasic.fr/german/viewtopi ... 8&start=20

Re: ListIcon Checkbox

Verfasst: 04.09.2013 09:29
von Velindos
Hallo Shardik,
das Funktioniert auf Anhieb, besten DANK!

Gruss ... Velindos

Re: ListIcon Checkbox

Verfasst: 04.09.2013 17:02
von Velindos
Hallo Leute,
zu früh gefreut, wenn ich dann die Checkbox Ausschalte, funktioniert mein Doppelklick auf dem ListIconGadget nicht mehr!

Code: Alles auswählen

OpenWindow(0,0,0,320,300,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,5,30,310,265,"Name",250)
ButtonGadget(1,5,5,100,20,"Mach An")
ButtonGadget(2,110,5,100,20,"Mach Aus")

For i=1 To 80 : AddGadgetItem(0,-1,"Gadget Item #" + Str(i)) : Next

Repeat
   EventID = WaitWindowEvent()

   If EventID = #PB_Event_Gadget
      Select EventGadget()
         Case 1
         SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
         SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_CHECKBOXES)   
               
         Case 2
         SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
         SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,0)
      EndSelect
   EndIf
Until EventID = #PB_Event_CloseWindow
Kann mir jemand sagen was ich da Einstellen muss?

Gruss ... Velindos

Re: ListIcon Checkbox

Verfasst: 04.09.2013 17:08
von RSBasic
Was meinst du mit Doppelklick? Auf ein Eintrag?
Bei mir funktioniert es, egal ob ich es aus- oder einschalte:

Code: Alles auswählen

EnableExplicit

Define EventID
Define i

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(0,5,30,310,265,"Name",250)
  ButtonGadget(1,5,5,100,20,"Mach An")
  ButtonGadget(2,110,5,100,20,"Mach Aus")
  
  For i=1 To 80 : AddGadgetItem(0,-1,"Gadget Item #" + Str(i)) : Next
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
          SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_CHECKBOXES)       
        Case 2
          SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
          SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,0)
        Case 0
          Select EventType()
            Case #PB_EventType_LeftDoubleClick
              Debug "a"
          EndSelect
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Vielleicht meinst du ja was ganz anderes und ich hab es nicht richtig verstanden.

Re: ListIcon Checkbox

Verfasst: 04.09.2013 17:16
von Velindos
Hallo,

also bei mir nicht! Arbeite mit PB 5.2 Beta 32Bit unter Winows 8 64 Bit, liegt es daran?

Gruss ... Velindos

Re: ListIcon Checkbox

Verfasst: 04.09.2013 17:33
von alter Mann
den Haken musst Du beim Doppelklick selber setzen :

Code: Alles auswählen

EnableExplicit

Define EventID
Define i

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(0,5,30,310,265,"Name",250)
  ButtonGadget(1,5,5,100,20,"Mach An")
  ButtonGadget(2,110,5,100,20,"Mach Aus")
  
  For i=1 To 80 : AddGadgetItem(0,-1,"Gadget Item #" + Str(i)) : Next
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
          SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_CHECKBOXES)       
        Case 2
          SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
          SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,0)
        Case 0
          Select EventType()
            Case #PB_EventType_LeftDoubleClick
              i = GetGadgetState(0)
              SetGadgetItemState(0,i,#PB_ListIcon_Checked)
          EndSelect
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: ListIcon Checkbox

Verfasst: 04.09.2013 18:15
von Velindos
Hallo,
dein Typ ist mir Klar! Bin noch am Suchen. Habe festgestellt das der Doppelklick kommt, aber meine Procedure nur "0" bekommt!

Habe die Sache geklärt, bei oben genannten verliert das ListIconGadget den Status = #PB_ListIcon_FullRowSelect

Weiss jemand wie ich den Wiederherstelle mit den Befehl " SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0) "

Gruss ... Velindos

Re: ListIcon Checkbox

Verfasst: 04.09.2013 20:36
von hjbremer
so wat ?

Code: Alles auswählen

OpenWindow(0,0,0,320,300,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,5,30,310,265,"Name",250,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
ButtonGadget(1,5,5,100,20,"Mach An")
ButtonGadget(2,110,5,100,20,"Mach Aus")

For i=1 To 80 : AddGadgetItem(0,-1,"Gadget Item #" + Str(i)) : Next

Repeat
   EventID = WaitWindowEvent()
   
   If EventID = #PB_Event_Gadget
      Select EventGadget()
         Case 1
            lastselect = GetGadgetState(0)
            exstyle = SendMessage_(GadgetID(0), #LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
            SendMessage_(GadgetID(0), #LVM_SETEXTENDEDLISTVIEWSTYLE, 0, exstyle | #LVS_EX_CHECKBOXES) 
            SetGadgetState(0, lastselect)
            SetActiveGadget(0)
         Case 2
            lastselect = GetGadgetState(0)
            exstyle = SendMessage_(GadgetID(0), #LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)
            SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0, exstyle & ~ #LVS_EX_CHECKBOXES)
            SetGadgetState(0, lastselect)
            SetActiveGadget(0)
      EndSelect
   EndIf
Until EventID = #PB_Event_CloseWindow

Re: ListIcon Checkbox

Verfasst: 05.09.2013 06:48
von Velindos
Hallo hjbremer,
einen Guten und meinen besten Dank für euren Vorschlag! Dieser Funzt wie gewünscht.
Das mit den Zeichen(& ~) muss man wohl wissen!
Nochmals DANKE!

Gruss ... Velindos