Code: Alles auswählen
Procedure.l DropOnGadget(Gadget.l, Window.l)
Protected _ProcedureReturn.b
;If GetActiveWindow()=Window
If WindowMouseX(Window)>=GadgetX(Gadget) and WindowMouseX(Window)<GadgetX(Gadget)+GadgetWidth(Gadget) and WindowMouseY(Window)>=GadgetY(Gadget) and WindowMouseY(Window)<GadgetY(Gadget)+ GadgetHeight(Gadget)
_ProcedureReturn= 1
Else
_ProcedureReturn= 0
EndIf
;EndIf
ProcedureReturn _ProcedureReturn
EndProcedure
OpenWindow(0,0,0,740,540,"Blubb",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ListIconGadget(1,5,10,200,360,"Liste 1",80,#PB_ListIcon_MultiSelect|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_CheckBoxes)
ListIconGadget(3,250,50,360,280,"Liste 3",280,#PB_ListIcon_MultiSelect|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_CheckBoxes)
ListIconGadget(2,5,380,600,130,"Liste 2",200,#PB_ListIcon_MultiSelect|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_CheckBoxes)
AddGadgetItem(3,0,"XYT")
AddGadgetItem(2,0,"XYT")
AddGadgetItem(2,1,"Blubb")
AddGadgetItem(2,2,"Anfang Xaby")
ChangeListIconGadgetDisplay(1, #PB_ListIcon_LargeIcon)
ChangeListIconGadgetDisplay(2, #PB_ListIcon_LargeIcon)
define Event, GadgetNr, MenuNr, Quit, MLC, XDrop, YDrop, PrivateDrop, DropSpreitList, EventType
;EventType() = #PB_EventType_DragStart
EnableGadgetDrop(1,#PB_Drop_Private,#PB_Drag_Copy,1)
EnableGadgetDrop(1,#PB_Drop_Private,#PB_Drag_Copy,2)
EnableGadgetDrop(3,#PB_Drop_Private,#PB_Drag_Copy,1) ; Liste mit Objekten
EnableGadgetDrop(3,#PB_Drop_Private,#PB_Drag_Copy,2)
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_CloseWindow
Quit=1
EndIf
If Event=#PB_Event_Gadget
GadgetNr=EventGadget()
If GadgetNr=2
If EventType = #PB_EventType_DragStart
DragPrivate(1)
EndIf
EndIf
If GadgetNr=3
EventType=EventType()
If EventType = #PB_EventType_DragStart
DragPrivate(2)
ElseIF EventType = #PB_EventType_LeftClick
DropSpreitList=GetGadgetState(3)
debug DropSpreitList
EndIf
EndIF
EndIf
If Event=#PB_Event_GadgetDrop
If EventDropType()=#PB_Drop_Private
PrivateDrop=EventDropPrivate()
If PrivateDrop=1 or PrivateDrop=2
If PrivateDrop=1
AddGadgetItem(1,0,GetGadgetItemText(2,(GetGadgetState(2))))
SetGadgetItemColor(1,0,#PB_Gadget_BackColor,RGB(Random(255),Random(255),Random(255)))
AddGadgetItem(3,0, GetGadgetItemText(2,(GetGadgetState(2))) +" "+Str(Random(100)))
ElseIf PrivateDrop=2
If DropOnGadget(1,0)
AddGadgetItem(1,0,GetGadgetItemText(3,(GetGadgetState(3))))
SetGadgetItemColor(1,0,#PB_Gadget_BackColor,RGB(Random(255),Random(255),Random(255)))
AddGadgetItem(3,0, GetGadgetItemText(3,(GetGadgetState(3))) +" "+Str(Random(100)))
ElseIf DropOnGadget(3,0) and DropSpreitList<>-1
SetGadgetItemColor(3,GetGadgetState(3),#PB_Gadget_BackColor,#Yellow)
SetGadgetItemColor(3,DropSpreitList,#PB_Gadget_BackColor,#Green)
DropSpreitList=-1
EndIf
EndIf
EndIf
EndIf
EndIF
Until Quit=1
Aber die eigentliche Frage ist, wie ich es schaffe, im rechten Gadget (Nr. 3) Elemente zu verschieben.
Ich hab sie erstmal mit Farbe makiert, aber irgendwie trifft die nicht immer ...
Jemand eine Idee? Oder noch besser eine Lösung?
Dank euch