Seite 1 von 4
ListIconGadget und #PB_ListIcon_MultiSelect
Verfasst: 09.03.2009 14:03
von php-freak
Hallo,
folgendes Problem!
Ich hab ein List Icon Gadget mit dem Flag #PB_ListIcon_MultiSelect.
Nun würde ich gerne ALLE Elemente die der User gewählt hat ermitteln!
GetGadgetState() <<geht nicht! Bei nur einer angewählten Sache geht das aber sonnst gibt es immer null zurück (wenn mehrere angewählt wurden) egal wie oft man es aufruft!
Gibt es einen Befehl womit man alle Ermitteln kann?
Wenn ja wie lautet dieser?
Gruß
JENS
Verfasst: 09.03.2009 14:36
von hjbremer
ein Beispiel, mußt es halt anpassen
Code: Alles auswählen
Dim liste(0)
LV_AnzahlSelect(lvpbnr,liste())
Procedure LV_AnzahlSelect(pbnr, Array liste(1)) ;16.10.07
id = GadgetID(pbnr)
;suchanz = Anzahl der selektierten Zeilen
suchanz = SendMessage_(id, #LVM_GETSELECTEDCOUNT, 0, 0)
Dim liste(suchanz) ;hier kommen die Zeilennummern hinein
liste(0)=suchanz
If suchanz > 0
n=GetGadgetState(pbnr) ;n ist die Startposi von #LVM_GETNEXTITEM
liste(1)=n ; darum müssen diese 2 Zeilen sein
For j=2 To suchanz
n = SendMessage_(id,#LVM_GETNEXTITEM,n,#LVNI_SELECTED)
liste(j) = n
Next
;For j=1 To suchanz:Debug liste(j):Next
EndIf
EndProcedure
Verfasst: 09.03.2009 14:41
von php-freak
Bei mir gibst in der 2.- Zeilen nen Compiler Error!
Verfasst: 09.03.2009 14:44
von hjbremer
ich schrieb anpassen
das Beispiel ist für 4.2
Verfasst: 09.03.2009 14:44
von ts-soft
Dafür braucht man keine API verwenden, und sollte man dann auch nicht
nutzen.
Verfasst: 09.03.2009 15:14
von hjbremer
und die Zeit geht ins Land bei 20000 Zeilen

Verfasst: 09.03.2009 15:31
von php-freak
CountGadgetItems()
GetGadgetItemState()
^^Damit geht es! Ihr habt recht!
Verfasst: 09.03.2009 15:48
von ts-soft
php-freak hat geschrieben:CountGadgetItems()
GetGadgetItemState()
^^Damit geht es nicht!
Naja, no comment
Code: Alles auswählen
If OpenWindow(0, 100, 100, 400, 150, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 5, 5, 390, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_MultiSelect)
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")
AddGadgetItem(0, -1, "Max Mustermann"+Chr(10)+"Mustergasse 0815, Musterstadt")
ButtonGadget(1, 10, 110, 80, 30, "Show Selected")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #PB_Event_Gadget
If EventGadget() = 1
For I = 0 To CountGadgetItems(0) - 1
If GetGadgetItemState(0, i) & #PB_ListIcon_Selected
Debug GetGadgetItemText(0, i)
EndIf
Next
EndIf
EndSelect
ForEver
EndIf
Verfasst: 09.03.2009 15:50
von php-freak
Okay THX ts-soft!
Verfasst: 09.03.2009 16:07
von Falko
php-freak hat geschrieben:CountGadgetItems()
GetGadgetItemState()
^^Damit geht es! Ihr habt recht!
Wie wäre es damit, wenn du Dein Beispielsource von Dir
rein stellst?
Dann sehen wir, ob es wirklich nicht geht
Gruß, Falko