move data between xbrowse files

Post Reply
alfredlam
Posts: 14
Joined: Tue Aug 21, 2012 2:13 am

move data between xbrowse files

Post 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
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: move data between xbrowse files

Post 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.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: move data between xbrowse files

Post 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.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: move data between xbrowse files

Post 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.
Regards

G. N. Rao.
Hyderabad, India
User avatar
Marc Venken
Posts: 1485
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: move data between xbrowse files

Post 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

Image

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 ?
Marc Venken
Using: FWH 23.08 with Harbour
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: move data between xbrowse files

Post 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?
Regards

G. N. Rao.
Hyderabad, India
User avatar
Marc Venken
Posts: 1485
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: move data between xbrowse files

Post 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
Marc Venken
Using: FWH 23.08 with Harbour
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: move data between xbrowse files

Post by nageswaragunupudi »

Marc Venken wrote:You mean this part ?

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

Yes.
Very good.
Regards

G. N. Rao.
Hyderabad, India
alfredlam
Posts: 14
Joined: Tue Aug 21, 2012 2:13 am

Re: move data between xbrowse files

Post by alfredlam »

Thanks Mr. G. N. Rao., tested your sample and work very well.
regards alfred
Post Reply