Da müßte ich jetzt selber schauen.
dazu.
z.B. das hier :
Code: Alles auswählen
Procedure ListIconGadgetColumns(GadgetNo)
i = 0
While GetGadgetItemAttribute(GadgetNo, 0, #PB_ListIcon_ColumnWidth, i) > 0
i + 1
Wend
ProcedureReturn i
EndProcedure
Procedure ListIconGadgetMove(GadgetNo.i, Source.i, Dest.i)
Columns = ListIconGadgetColumns(GadgetNo) - 1
For j = 0 To Columns
Source$ = GetGadgetItemText(GadgetNo, Source, j)
If Source < Dest
For i = Source To Dest - 1
Help$ = GetGadgetItemText(GadgetNo, i + 1, j)
SetGadgetItemText(GadgetNo, i, Help$, j)
Next i
Else
For i = Source To Dest + 1 Step - 1
Help$ = GetGadgetItemText(GadgetNo, i - 1, j)
SetGadgetItemText(GadgetNo, i, Help$, j)
Next i
EndIf
SetGadgetItemText(GadgetNo, i, Source$, j)
Next j
EndProcedure
Procedure ListViewGadgetMove(gad.i, Source.i, Dest.i)
Protected i, Help$, Source$
Source$ = GetGadgetItemText(gad, Source)
If Source < Dest
For i = Source To Dest - 1
Help$ = GetGadgetItemText(gad, i + 1)
SetGadgetItemText(gad, i, Help$)
Next
Else
For i = Source To Dest + 1 Step - 1
Help$ = GetGadgetItemText(gad, i - 1)
SetGadgetItemText(gad, i, Help$)
Next
EndIf
SetGadgetItemText(gad, i, Source$)
EndProcedure
OpenWindow(0, 0, 0, 600, 600, "Drag'n drop test", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
; ContainerGadget is more for testing only (if the Drag'n'Drop also works, if the related gadgets are placed inside)
gad = ContainerGadget(#PB_Any, 5, 5, 460, 265, #PB_Container_Double)
listicon = ListIconGadget(#PB_Any, 10, 10, 440, 240, "Test 1", 100 , #PB_ListIcon_FullRowSelect|#PB_ListIcon_HeaderDragDrop)
AddGadgetColumn(listicon, 1, "Test 2", 100)
AddGadgetColumn(listicon, 2, "Test 3", 100)
AddGadgetColumn(listicon, 3, "Test 4", 100)
For i = 1 To 10
AddGadgetItem(listicon, -1, "Line " + Str(i) + " Col 1" + Chr(10) + "Line " + Str(i) + " Col 2"+ Chr(10) + "Line " + Str(i) + " Col 3" + Chr(10) + "Line " + Str(i) + " Col 4")
Next i
CloseGadgetList() ;Remember to close the GadgetList()
EnableGadgetDrop(Listicon, #PB_Drop_Private, #PB_Drag_Move, 1)
button = ButtonGadget(#PB_Any, 520, 15, 50, 24,"TEST")
Exit = #False
DragItem = -1
Repeat
Event = WaitWindowEvent()
EventType = EventType()
EventGadget = EventGadget()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case button
listicon2 = ListIconGadget(#PB_Any, 10, 340, 440, 240, "Test 1", 100 , #PB_ListIcon_FullRowSelect|#PB_ListIcon_HeaderDragDrop)
AddGadgetColumn(listicon2, 1, "Test 2", 100)
AddGadgetColumn(listicon2, 2, "Test 3", 100)
AddGadgetColumn(listicon2, 3, "Test 4", 100)
For i = 1 To 10
AddGadgetItem(listicon2, -1, "Line " + Str(i) + " Col 1" + Chr(10) + "Line " + Str(i) + " Col 2"+ Chr(10) + "Line " + Str(i) + " Col 3" + Chr(10) + "Line " + Str(i) + " Col 4")
Next i
EnableGadgetDrop(Listicon2, #PB_Drop_Private, #PB_Drag_Move, 1)
Case listicon,listicon2
Select EventType
Case #PB_EventType_DragStart
DragItem = GetGadgetState(EventGadget)
DragPrivate(1, #PB_Drag_Move)
EndSelect
EndSelect
Case #PB_Event_GadgetDrop
EventGadget = GetActiveGadget()
If EventDropPrivate() = 1
TargetItem = GetGadgetState(EventGadget)
; Debug "Target: " + Str(TargetItem)
If EventGadget = listicon Or EventGadget = listicon2
ListIconGadgetMove(EventGadget, DragItem, TargetItem)
EndIf
EndIf
Case #PB_Event_CloseWindow
Exit = #True
EndSelect
Until Exit