Listicon Drag & Drop
Verfasst: 28.10.2015 09:41
Hallo Leute,
wie nimmt der das richtige Image mit in die Zeile bei Drag&Drop im Listicon!
Gruss ... Velindos
wie nimmt der das richtige Image mit in die Zeile bei Drag&Drop im Listicon!
Code: Alles auswählen
Enumeration: #Window: #Work_ListIcon:EndEnumeration
Enumeration: #positiv: #negativ:EndEnumeration
Global Durchlauefer = 0
CreateImage(#positiv, 16,16,24,$8849C7)
CreateImage(#negativ, 16,16,24,$884954)
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
OpenWindow(#Window, 0, 0, 600, 400, "Dragn drop test", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
ListIconGadget(#Work_ListIcon, 10, 10, 580, 380, "Test 1", 150 , #PB_ListIcon_FullRowSelect|#PB_ListIcon_HeaderDragDrop)
AddGadgetColumn(#Work_ListIcon, 1, "Test 2", 150)
AddGadgetColumn(#Work_ListIcon, 2, "Test 3", 120)
AddGadgetColumn(#Work_ListIcon, 3, "Test 4", 120)
For i = 1 To 10
If Durchlauefer = 0
AddGadgetItem(#Work_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",ImageID(#positiv))
Durchlauefer = 1
Else
AddGadgetItem(#Work_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",ImageID(#negativ))
Durchlauefer = 0
EndIf
Next i
EnableGadgetDrop(#Work_ListIcon, #PB_Drop_Private, #PB_Drag_Move, 1)
Exit = #False
DragItem = -1
Repeat
WindowWaitEvent = WaitWindowEvent()
Select WindowWaitEvent
Case #PB_Event_Gadget
Select EventType()
Case #PB_EventType_DragStart
DragItem = GetGadgetState(#Work_ListIcon)
DragPrivate(1, #PB_Drag_Move)
EndSelect
Case #PB_Event_GadgetDrop
If EventDropPrivate() = 1
TargetItem = GetGadgetState(#Work_ListIcon)
ListIconGadgetMove(#Work_ListIcon, DragItem, TargetItem)
EndIf
Case #PB_Event_CloseWindow
Exit = #True
EndSelect
Until Exit
Gruss ... Velindos