Page 1 of 1

Drag & Drop Browse

Posted: Tue Dec 04, 2007 7:48 pm
by fgondi
Hola,

Tengo 2 ventanas mdi y en cada una un browse. a los cuales les tengo permitido el arrastrar y soltar.

Lo que quiera es controlar en que fila del browse se suelta el botón, ya que la variable nRow que se carga en bDropOver cambia dependiendo de donde se encuentre la ventana.

Posted: Wed Dec 05, 2007 12:23 am
by Antonio Linares
Fernando,

Los parámetros nRow y nCol son relativos al control en donde se inicia la operación de arrastrar y soltar, por lo que has de convertir las coordenadas (relativas) de un control a las coordenadas (relativas) del otro:

local aPoint := { nRow, nCol }

aPoint = ClientToScreen( oBrw1:hWnd, aPoint } // convierte a absolutas
aPoint = ScreenToClient( oBrw2:hWnd, aPoint ) // convierte a relativas

Posted: Wed Dec 05, 2007 8:07 am
by fgondi
Antonio,

Muchas gracias, funciono perfectamente.

Una vez que aplique lo que comentas tenia un problema en determinadas posiciones de las ventanas, pero en este post indicabas como resolverlo:
http://fivetechsoft.com/forums/viewtopi ... light=drag

Code: Select all

  if nRow > 32000
    nRow = - ( 65535 - nRow )
  endif   
  if nCol > 32000
    nCol = - ( 65535 - nCol )
  endif    
  aPoint := {nRow, nCol}
  aPoint = ClientToScreen( oBrw1:hWnd, aPoint } // convierte a absolutas
  aPoint = ScreenToClient( oBrw2:hWnd, aPoint ) // convierte a relativas

Posted: Wed Dec 05, 2007 8:53 am
by Antonio Linares
Fernando,

Bien! :-)