Seite 1 von 3
ListIconGadget, checkboxes, Häkchen
Verfasst: 14.01.2009 15:07
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?
Verfasst: 14.01.2009 15:26
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
Verfasst: 14.01.2009 16:06
von Andi
Das ist es! Danke, ts-soft!
Verfasst: 14.01.2009 16:17
von Kiffi
... wenngleich man dadurch einen evtl. vorhandenes #PB_ListIcon_Selected
verliert.
Grüße ... Kiffi
Verfasst: 15.01.2009 01:54
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.
Verfasst: 16.01.2009 17:46
von Andesdaf
gibt es eigentlich auch eine Möglichkeit, die Checkboxes während der Laufzeit
wieder zu entfernen?
Verfasst: 16.01.2009 18:34
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

Verfasst: 16.01.2009 18:36
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

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.
Verfasst: 16.01.2009 18:39
von Andesdaf
> ich schaetze mal er meint, wie man die Checkboxes komplett entfernt...
genau. Werd mal a bissl rumsuchen.
Verfasst: 16.01.2009 18:40
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
