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.
Drag & Drop Browse
Drag & Drop Browse
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
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
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
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
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
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: