Drag and Drop between Data Grids
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.
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.
> 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)
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
More information about the Use-livecode