Mickelsoft for ever
Code: Alles auswählen
Procedure.i LvGetLastSelected(id)
Protected anz = SendMessage_(id, #LVM_GETSELECTEDCOUNT, 0, 0) ;Anzahl selektiert
Protected j, n = -1
If anz
For j = 1 To anz
n = SendMessage_(id, #LVM_GETNEXTITEM, n, #LVNI_SELECTED) : Debug "selected " + n
Next
EndIf
ProcedureReturn n
EndProcedure
;oder in ein Array
Procedure.i LvGetSelected(id, Array liste(1))
Protected anz = SendMessage_(id, #LVM_GETSELECTEDCOUNT, 0, 0) ;Anzahl selektiert
Protected j, n = -1
Dim liste(anz) ;hier kommen die Zeilennummern hinein
liste(0) = anz
If anz
For j = 1 To anz
n = SendMessage_(id, #LVM_GETNEXTITEM, n, #LVNI_SELECTED)
liste(j) = n
Next
EndIf
ProcedureReturn anz
EndProcedure
OpenWindow(0, 0, 0, 640, 450, "ListIconGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 10, 25, 380, 390, "Column 1", 100, #PB_ListIcon_MultiSelect|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
ButtonGadget(1, 10, 420, 80, 25, "last")
ButtonGadget(2, 110, 420, 80, 25, "Array")
For j = 2 To 4 ;weitere Spalten
AddGadgetColumn(0, j, "Column " + Str(j), 80)
Next
For j = 0 To 24
t$ = ~"Literale\nZeile\n"+Str(j)
AddGadgetItem(0, j, t$)
Next
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : row = LvGetLastSelected(GadgetID(0))
Debug "last selected " + row
Case 2
Dim rownr(0)
anz = LvGetSelected(GadgetID(0), rownr())
For j = 1 To anz
Debug rownr(j)
Next
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
es werden nur die selektierten Einträge abgefragt