In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Re: OnHeaderOver

Foro público de Xailer en español
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Re: OnHeaderOver

Mensaje por jose.luis »

Hola Toni,
"Toni Sales" <toni.sales@gmail.com> escribió en el mensaje
news:48ad471e$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio/Jose
> ¿Existe este evento en un TdbBrowse?
>
> Necesito reconocer cuando al realizar un Drag sobre un browse el cursor
> está situado sobre el Header del mismo para realizar un GoUp() desde el
> evento OnDragOver.
>
Creo que si lo que quieres es que el browse vaya bajando mientras el ratón
está por encima del browse podrías hacer lo siguiente:
En el momento de iniciar el proceso del drag+drop (normalmente en el browse)
capturas los movimientos del ratón con SetCapture(oSendeR:Handle). Después
utiliza el envento del dbbrowse:onMouseMove. Este evento te devuelve las
coordenadas del ratón (en al ayuda no queda claro si cliente o no).
Suponiendo que las coordenadas son sobrel area cliente vas verificando que
sean negativas (entonces es que estás más arriba del browse) y empiezas a
hacer oSendeR:goup() en el intervalo de coordenadas que te interese (por
ejemplo, cada 50 pixeles). Cuando se cancela el proceso del drag+drop
deberás liberar el ratón con ReleaseCapture().
Espero que te sea de utilidad.
Saludos,
José Luis Capel
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: OnHeaderOver

Mensaje por jfgimenez »

José Luis, Toni,
> En el momento de iniciar el proceso del drag+drop (normalmente en el
> browse) capturas los movimientos del ratón con SetCapture(oSendeR:Handle).
> Después utiliza el envento del dbbrowse:onMouseMove. Este evento te
> devuelve las coordenadas del ratón (en al ayuda no queda claro si cliente
> o no). Suponiendo que las coordenadas son sobrel area cliente vas
> verificando que sean negativas (entonces es que estás más arriba del
> browse) y empiezas a hacer oSendeR:goup() en el intervalo de coordenadas
> que te interese (por ejemplo, cada 50 pixeles). Cuando se cancela el
> proceso del drag+drop deberás liberar el ratón con ReleaseCapture().
En principo esta técnica parece correcta, salvo por que no hay que llamar ni
a SetCapture() ni a ReleaseCapture(), ya que es Xailer quién lo hace durante
el proceso de drag&drop. Por otro lado, el evento OnMouseMove se va a
recibir aunque el puntero esté sobre otro control, ya que el ratón está
'capturado', lo que significa que como bien dice José Luis, si la coordenada
vertical es negativa es que el puntero está por encima. Pero ojo, el header
está dentro del browse, no por encima; tenedlo en cuenta.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder