ListIconGadget, checkboxes, Häkchen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Andi
Beiträge: 79
Registriert: 27.05.2008 17:29
Wohnort: Berlin

ListIconGadget, checkboxes, Häkchen

Beitrag von Andi »

Ich habe im Forum gelernt, dass man via Callback auslesen kann, ob bei einem Eintrag in einem ListIconGadget das Häkchen der Checkbox entfernt oder gesetzt wurde. Man kann auch via Programm ein Häkchen setzen:

Code: Alles auswählen

SetGadgetItemState(#Gadget, Eintrag, #PB_ListIcon_Checked)
Meine Frage ist, ob man via Programm ein Häkchen auch entfernen kann. Gibt es eine Art Flag wie #PB_ListIcon_UnChecked?
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

 Define flag = #True
 
 If OpenWindow(0, 100, 100, 300, 150, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   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, 100, 110, 100, 30, "change second")
   SetGadgetItemState(0, -1, #PB_ListIcon_Checked); alle gescheckt
   
   Repeat
     Select WaitWindowEvent()
      Case #PB_Event_CloseWindow : Break
      Case #PB_Event_Gadget
        If EventGadget() = 1 ; Button gedrückt
          flag ! 1
          If flag
            SetGadgetItemState(0, 1, #PB_ListIcon_Checked)
          Else
            SetGadgetItemState(0, 1, 0); zweiten zurücksetzen
          EndIf
        EndIf
     EndSelect
   ForEver
 EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andi
Beiträge: 79
Registriert: 27.05.2008 17:29
Wohnort: Berlin

Beitrag von Andi »

Das ist es! Danke, ts-soft!
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:

Code: Alles auswählen

SetGadgetItemState(0, 1, 0); zweiten zurücksetzen
... wenngleich man dadurch einen evtl. vorhandenes #PB_ListIcon_Selected
verliert. ;-)

Grüße ... Kiffi
a²+b²=mc²
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Code: Alles auswählen

          If flag 
            SetGadgetItemState(0, 1, GetGadgetItemState(0, 1)  | #PB_ListIcon_Checked) 
          Else 
            SetGadgetItemState(0, 1, GetGadgetItemState(0, 1)  & ~#PB_ListIcon_Checked); zweiten zurücksetzen 
          EndIf
So vielleicht? Habs aber nicht ausprobiert.
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

gibt es eigentlich auch eine Möglichkeit, die Checkboxes während der Laufzeit
wieder zu entfernen?
Win11 x64 | PB 6.20
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Andesdaf hat geschrieben:gibt es eigentlich auch eine Möglichkeit, die Checkboxes während der Laufzeit
wieder zu entfernen?
Tja, was macht den mein Code?
Oder meinste das ganze Gadget, das geht wie mit allen Gadgets :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

ts-soft hat geschrieben:
Andesdaf hat geschrieben:gibt es eigentlich auch eine Möglichkeit, die Checkboxes während der Laufzeit
wieder zu entfernen?
Tja, was macht den mein Code?
Oder meinste das ganze Gadget, das geht wie mit allen Gadgets :mrgreen:
ich schaetze mal er meint, wie man die Checkboxes komplett entfernt...

Tja... das geht wohl nur mit API...

oder du speicherst alle Eintraage in Variablen, definierst das Gadget neu (ohne Checkboxes) und fuegst die Eintraege dann wieder neu ein.
Bild + Bild

Bild
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

> ich schaetze mal er meint, wie man die Checkboxes komplett entfernt...
genau. Werd mal a bissl rumsuchen.
Win11 x64 | PB 6.20
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

> ich schaetze mal er meint, wie man die Checkboxes komplett entfernt...
Diese Möglichkeit habe ich übersehen, weil mir da auch gerade kein Einsatz
für einfällt, gibts aber bestimmt. Ich denke mal das man per API den Style
entfernen muß und neuzeichnen (SetWindowLongPtr_, InvalideRect_)

Hab aber jetzt keine Lust das genauer zu erörtern, findet sich bestimmt jemand :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten