Page 1 of 1
move data between xbrowse files
Posted: Fri Jul 06, 2018 2:52 am
by alfredlam
Hi,
I wish to move the data from a cell of a list to another list based on mouse release position.
can someone please help.
Thanks and regards,
Alfred
Re: move data between xbrowse files
Posted: Sat Jul 07, 2018 10:41 am
by nageswaragunupudi
Set oBrw:lAllowPaste in the second browse.
Press Ctrl-C in the cell of the first browse and then press Ctrl-V in the cell of the second browse.
Re: move data between xbrowse files
Posted: Sat Jul 07, 2018 2:55 pm
by nageswaragunupudi
This is an example of drag and drop
Code: Select all | Expand
#include "fivewin.ch"
function Main()
local oDlg, oBrw1, oBrw2, oCur
local aData := Array( 50, 2 )
USE STATES NEW
DEFINE CURSOR oCur DRAG
DEFINE DIALOG oDlg SIZE 640,500 PIXEL TRUEPIXEL ;
TITLE "DRAG AND DROP"
@ 20, 20 XBROWSE oBrw1 SIZE 300,-20 PIXEL OF oDlg ;
DATASOURCE "STATES" AUTOCOLS ;
COLSIZES 60,180 ;
CELL LINES NOBORDER
WITH OBJECT oBrw1
:oDragCursor := oCur
:bDragBegin := { |r,c,f| SetDropInfo( oBrw1:SelectedCol():Value ) }
:CreateFromCode()
END
@ 20,320 XBROWSE oBrw2 SIZE 300,-20 PIXEL OF oDlg ;
DATASOURCE aData AUTOCOLS ;
HEADERS "CODE", "NAME" ;
COLSIZES 60,180 ;
CELL LINES NOBORDER
WITH OBJECT oBrw2
:bDropOver := { |u,r,c,f| DropOver( u,r,c, oBrw1, oBrw2 ) }
:CreateFromCode()
END
ACTIVATE DIALOG oDlg CENTERED
return nil
function DropOver( uInfo, nRow, nCol, oBrw1, oBrw2 )
local aPoint
aPoint := ClientToScreen( oBrw1:hWnd, { nRow, nCol } )
aPoint := ScreenToClient( oBrw2:hWnd, aPoint )
oBrw2:SetPos( aPoint[ 1 ], aPoint[ 2 ], .t. )
oBrw2:SelectedCol():VarPut( uInfo )
return nil
You can drag cell contents from left browse over to the right browse and drop on the destination cell.
Re: move data between xbrowse files
Posted: Sat Jul 07, 2018 5:52 pm
by nageswaragunupudi
From version FWH 1805, bDropOver can be simplified like this:
Code: Select all | Expand
:bDropOver := { |uInfo,r,c,f,aPt| oBrw2:SetPos( aPt[ 1 ], aPt[ 2 ], .t. ), ;
oBrw2:SelectedCol():VarPut( uInfo ) }
There is no need for separate function DropOver(...) as in the above sample.
Re: move data between xbrowse files
Posted: Sat Jul 07, 2018 7:00 pm
by Marc Venken
this is very very nice !!
Can we do this also with visual colors ?
I have 2 ways that I use :
1. with jpg's that are color motives
2. Hex values that are used as colors references

I my setup, It would be great to drop from the xbrowse (fotos or attribute) most right the color or jpg into colpic from the first xbrowse.
Can this also work ?
Re: move data between xbrowse files
Posted: Sun Jul 08, 2018 12:29 am
by nageswaragunupudi
1) You can. When the drag begins, set the information to be sent using SetDropInfo(). When the drop finishes, use the uInfo (1st parameter of bDropInfo) the way you want to.
2) Can you show me the part of your code dislaying the image on the top and title in the bottom?
Re: move data between xbrowse files
Posted: Sun Jul 08, 2018 12:21 pm
by Marc Venken
You mean this part ..
Code: Select all | Expand
WITH OBJECT:colpic
:bStrImage := { || "r:\pictures\"+alltrim(ATT->colpic) }
:oDataFont := oFontS
:nDataStrAlign := AL_CENTER + AL_BOTTOM
:nDataBmpAlign := AL_CENTER
:aImgRect := { nil, nil, -10, nil }
END
Re: move data between xbrowse files
Posted: Sun Jul 08, 2018 12:25 pm
by nageswaragunupudi
Marc Venken wrote:You mean this part ?
WITH OBJECT:colpic
:bStrImage := { || "r:\pictures\"+alltrim(ATT->colpic) }

DataFont := oFontS
:nDataStrAlign := AL_CENTER + AL_BOTTOM
:nDataBmpAlign := AL_CENTER
:aImgRect := { nil, nil, -10, nil }
END
Yes.
Very good.
Re: move data between xbrowse files
Posted: Thu Jul 26, 2018 12:57 am
by alfredlam
Thanks Mr. G. N. Rao., tested your sample and work very well.
regards alfred