LPARAMETERS oDataObject, nEffect * * Set the format that the burner program will recognize (and will change the icon) * oDataObject.SetFormat(15) && Files CF_DROPThis code is used to copy similar folder names as a group to the burner.
LPARAMETERS oDataObject, eFormat * * Fired by the drop in the burner program, telling us what kind of data it expects * IF eFormat=15 && Files CF_DROP * * Copy over as many pieces of folder for this cruncher as you can (if it exists) * DIMENSION aFolders[1] aFolders[1] = thisform.BurnSource + vInfo.Folder cFolder = LEFT(vInfo.Folder,4) SKIP 1 IN vInfo IF this.DragButton=1 && Left button, do the rest of this folder for this date SCAN REST WHILE vInfo.Folder=cFolder nFldrs = ALEN(aFolders,1) + 1 DIMENSION aFolders[nFldrs] aFolders[nFldrs] = thisform.BurnSource + vInfo.Folder ENDSCAN ENDIF * * Set the data that's passed via D&D and the format * oDataObject.SetData(@aFolders,eFormat) this.Refresh() ENDIFAnd in the Grid.MouseDown:
LPARAMETERS nButton, nShift, nXCoord, nYCoord LOCAL nWhere this.GridHitTest(nXCoord,nYCoord,@nWhere) IF nWhere=3 && must be on a cell this.DragButton = nButton IF INLIST(nButton,1,2) AND NOT ISNULL(vInfo.DifCount) AND vInfo.DifCount=0 AND NOT ISNULL(vInfo.GBDisk) * * Since grids can't do an Automatic D&D (.DragMode=1), start it manually * this.OLEDrag(.t.) ELSE this.DragButton = 0 && Let MouseMove handle it ENDIF ENDIFGrid also has .OLEDropMode=1 Enabled