ListIcon Checkbox

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

ListIcon Checkbox

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: ListIcon Checkbox

Beitrag von Shardik »

Hast Du schon einmal Fluid Bytes Beispiel ausprobiert?
http://www.purebasic.fr/german/viewtopi ... 8&start=20
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: ListIcon Checkbox

Beitrag von Velindos »

Hallo Shardik,
das Funktioniert auf Anhieb, besten DANK!

Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: ListIcon Checkbox

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIcon Checkbox

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: ListIcon Checkbox

Beitrag von Velindos »

Hallo,

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

Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: ListIcon Checkbox

Beitrag 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
Win11 64Bit / PB 6.0
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: ListIcon Checkbox

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: ListIcon Checkbox

Beitrag 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
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: ListIcon Checkbox

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten