ListIcon + MultiSelect + Drag&Drop
Verfasst: 15.10.2011 16:03
Ich möchte gerne per Drag&Drop mehrere Einträge vom obigen
Listicon ins untere Listicon kopieren. Mit Einzel-Items gehts ja
wunderbar. Nur wie gehts am besten mit mehreren ?
Wahrscheinlich mit einer Liste. Kann ich dazu SetDragCallback()
und SetDropCallback() benutzen und wie ?
Evtl. hat ja jemand schon sowas gemacht.
Es sollten Einzeleinträge und auch Multiselect gehen.
Listicon ins untere Listicon kopieren. Mit Einzel-Items gehts ja
wunderbar. Nur wie gehts am besten mit mehreren ?
Wahrscheinlich mit einer Liste. Kann ich dazu SetDragCallback()
und SetDropCallback() benutzen und wie ?
Evtl. hat ja jemand schon sowas gemacht.
Es sollten Einzeleinträge und auch Multiselect gehen.
Code: Alles auswählen
#Window = 0
Enumeration
#SourceText
#TargetText
EndEnumeration
Structure Felder
Name.s{100}
Ort.s{100}
Telefon.s{12}
EndStructure
Global NewList Felderliste.Felder()
Global Event.l, i.l, Text.s
If OpenWindow(#Window, 0,0,600,600, "Drag & Drop", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(#SourceText, 10,10,500,200, "Name", 180,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_MultiSelect)
ListIconGadget(#TargetText, 10,300, 500,200, "Name", 180, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
AddGadgetColumn(#SourceText, 1, "Ort", 180)
AddGadgetColumn(#SourceText, 2, "Telefon", 100)
AddGadgetColumn(#TargetText, 1, "Ort", 180)
AddGadgetColumn(#TargetText, 2, "Telefon", 100)
AddGadgetItem(#SourceText, -1, "Maier" + Chr(10) + "Köln" + Chr(10) + "4711")
AddGadgetItem(#SourceText, -1, "Schmidt" + Chr(10) + "Hamburg" + Chr(10) + "12345")
AddGadgetItem(#SourceText, -1, "Müller" + Chr(10) + "Bonn" + Chr(10) + "6789")
EnableGadgetDrop(#TargetText, #PB_Drop_Text, #PB_Drag_Copy)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget And EventType() = #PB_EventType_DragStart
Select EventGadget()
Case #SourceText
Text = GetGadgetItemText(#SourceText, GetGadgetState(#SourceText),0) + Chr(10) + GetGadgetItemText(#SourceText, GetGadgetState(#SourceText),1) + Chr(10) + GetGadgetItemText(#SourceText, GetGadgetState(#SourceText),2)
DragText(Text)
EndSelect
ElseIf Event = #PB_Event_GadgetDrop
Select EventGadget()
Case #TargetText
AddGadgetItem(#TargetText, -1, EventDropText())
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
End