Drag and Drop between Data Grids

Bob Sneidar bobs at twft.com
Tue Dec 14 15:58:50 EST 2010


Hi Zryip! That is the best explanation of the subject I have ever heard. That makes total sense to me now. Thanks. 

Bob


On Dec 14, 2010, at 12:09 PM, zryip theSlug wrote:

> On Tue, Dec 14, 2010 at 5:45 PM, Bob Sneidar <bobs at twft.com> wrote:
>> Well, I copied and pasted your scripts from your datagrids to mine. While I can drag, I do not seem to be able to drop. Yours work, mine do not. I got really flustered at that so I gave up for the night. I am going to have a fresh go at it today sometime.
>> 
>> Permit me a bit of a rant: While Data Grids are pretty cool and do amazing things, I was kind of hoping for a native table field. Mastering Data Grids seems to take as much or more as it took to master everything else about LiveCode.
> 
> Bob,
> 
> 1) In the datagrid source you need to have: the
> dgTrackDragReorder[tTheIndex] set to false
> 
> If set to true, the datagrid tracks the move inside it. If set to
> false you are allowed to move the data outside it.
> 
> Only this handler is required in the source datagrid:
> 
> on dragStart
>   local tTheIndex, tTheDragData, tTheDataControl
> 
>   put the dgDataControl of the target into tTheDataControl
> 
>   if (tTheDataControl is empty) then pass dragStart -- Prevent the
> move if no data control exists
> 
>   if (the dgHeader of the target is empty) then
>      put the dgIndex of the dgDataControl of the target into tTheIndex
>      set the dgDragImageIndex of me to tTheIndex
> 
>      ## Prepare the data to add in the datagrid 2
>      put the dgDataOfIndex[tTheIndex] of me into tTheDragData
>      combine tTheDragData using tab
>      set the dragData["private"] to tTheDragData
> 
>      set the dgTrackDragReorder[tTheIndex] of me to false --
> Important to move the data outside
>   end if
> end dragStart
> 
> 2) In the destination, you need two handlers:
> 
> on dragMove
>   set the dragaction to "copy"
> end dragMove
> 
> The dragaction will allow the datagrid to get the data you drop.
> 
> on dragDrop
>   local tTheNewData, tTheColOrder
> 
>   put "Col1" & cr & "Col2" into tTheColOrder
>   put the dragData["private"] into tTheNewData
>   send "AddLine tTheNewData, tTheColOrder" to me
> end dragDrop
> 
> The dragDrop handler will receive the data dropped if the dragaction is allowed.
> 
> 
> Best regards,
> -- 
> -Zryip TheSlug- wish you the best! 8)
> http://www.aslugontheroad.co.cc
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list