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.

Clicks... se evaluan eventos antes de Soltar

Foro de Xailer profesional en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Clicks... se evaluan eventos antes de Soltar

Mensaje por Xevi »

Hola,
Resulta que estoy probando el Doble Click en los objetos de Xailer, y veo
que el comportamiento es un tanto "extraño"...
METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS TForm2
::Close()
RETURN Nil
esto me cierra la ventana activa ANTES de soltar el botón.
lo mismo ocurre en el evento OnRClick
Por lo visto se lanzan los eventos antes de soltar el botón, cuando, creo
que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que no se
libera el botón.
O... probado el OnContextMenu... ese si funciona correctamente,... se evalua
cuando el botón es liberado...
No se... pero creo que el funcionamiento correcto es el que comento...
Un Saludo,
Xevi.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Clicks... se evaluan eventos antes de Soltar

Mensaje por ignacio »

Xevi,
Con el doble-click no se puede controlar cuando se suelta el botón del ratón
en el segundo click, al menos que yo sepa el API no da ningún mensaje para
ello, aunque escribo de memoria y es posible que a lo mejor exista. En
cualquier caso yo no veo que el comportamiento sea extraño pues no es muy
normal sostener el botón del ratón en un doble-click, pero puedo estar
equivocado.
En cuanto al RClick, es un evento que se produce cuando se pulsa el botón
derecho del ratón, y es así como está definido en el API, lo único que
hacemos es procesar el mensaje de Windows. Deberías utilizar el evento
oOnRButtonUp que se ejecuta cuando se suelta el botón.
Un saludo,
Incl
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
>
> Resulta que estoy probando el Doble Click en los objetos de Xailer, y veo
> que el comportamiento es un tanto "extraño"...
>
> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS TForm2
> ::Close()
> RETURN Nil
>
> esto me cierra la ventana activa ANTES de soltar el botón.
> lo mismo ocurre en el evento OnRClick
>
> Por lo visto se lanzan los eventos antes de soltar el botón, cuando, creo
> que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que no
> se libera el botón.
> O... probado el OnContextMenu... ese si funciona correctamente,... se
> evalua cuando el botón es liberado...
>
> No se... pero creo que el funcionamiento correcto es el que comento...
>
> Un Saludo,
> Xevi.
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Clicks... se evaluan eventos antes de Soltar

Mensaje por ignacio »

Xevi,
He estado reflexionando sobre la conveniencia de que el RClick se dispara en
el 'Down' on el 'Up'. En el caso del botón izquierdo no tengo duda y es
lógico que el Click se dispare cuando se suelta el botón. Pero en el derecho
no lo tengo claro, ya que precisamente cuando se suelta el botón se evalua
el evento OnContextMenu, lo que supondría tener dos eventos con el mismo
nombre que hacen exactamente lo mismo, pero efectivamente compruebo que los
controles del API que especialmente procesan RCLICK lo disparan después de
soltar. Por lo que creo que tienes razón, modificaré el Browse para que el
RCLICK se dispare cuando se suelte el botón y no antes.
Un saludo,
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> Con el doble-click no se puede controlar cuando se suelta el botón del
> ratón en el segundo click, al menos que yo sepa el API no da ningún
> mensaje para ello, aunque escribo de memoria y es posible que a lo mejor
> exista. En cualquier caso yo no veo que el comportamiento sea extraño pues
> no es muy normal sostener el botón del ratón en un doble-click, pero puedo
> estar equivocado.
>
> En cuanto al RClick, es un evento que se produce cuando se pulsa el botón
> derecho del ratón, y es así como está definido en el API, lo único que
> hacemos es procesar el mensaje de Windows. Deberías utilizar el evento
> oOnRButtonUp que se ejecuta cuando se suelta el botón.
>
> Un saludo,
>
> Incl
> "Xevi" <xevicomas@terra.es> escribió en el mensaje
> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Hola,
>>
>>
>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y veo
>> que el comportamiento es un tanto "extraño"...
>>
>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS TForm2
>> ::Close()
>> RETURN Nil
>>
>> esto me cierra la ventana activa ANTES de soltar el botón.
>> lo mismo ocurre en el evento OnRClick
>>
>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando, creo
>> que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que no
>> se libera el botón.
>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>> evalua cuando el botón es liberado...
>>
>> No se... pero creo que el funcionamiento correcto es el que comento...
>>
>> Un Saludo,
>> Xevi.
>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Clicks... se evaluan eventos antes de Soltar

Mensaje por Xevi »

Ignacio,
Recuerdo que en otro Compilador+Gui comente un "error" parecido al
comentado, pues ocurria cuando se pulsaba click, doble clik... y el efecto
era el mismo comportamiento que he notado con Xailer el cual he comentado, y
se arregló, pues afectaba precisamente a ese estado, el no detectar de
Windows el "soltar" el botón... y se me comento algo parecido del API de
Windows
Un ejemplo en el que necesito utilizar,...
en un Browse de una MDICHILD con doble clik por ej. lo utilizo para
seleccionar un registro, y quiero cerrar la ventana y enviar un PostMsg al
menu para que se desplegue automáticamente...
¿Que ocurre tal como está ahora el Evento DblClick???
que cierra la ventana pero por lo visto WINDOWS tiene una tarea pendiente de
evaluar al soltar el botón.
¿Que ocurre tal como está ahora el Evento RClick???
que cierra la ventana CORRECTAMENTE y WINDOWS no tiene ninguna tarea
pendiente de evaluar al soltar el botón.
Adjunto un simple Ejemplo que reproduce este efecto que comento...
Del Menu... Opciones5... opción0501.
al pulsar doble clic en el Browse, debería desplegar el Menu en su estado
anterior, pero no lo hace...
Para ver el efecto... si no soltamos el botón en el segundo clik... cierra
la ventana y el foco ya lo pasa al menu, iluminando la primera opción de
éste...
Si le damos al Browse con el botón derecho, cierra la ventana correctamente,
y desplega el menu correctamente, eso quiere decir que ha liberado ya
WINDOWS de la tarea de soltar el botón.
Aunque yo creo que sería mas "correcto" que no se evaluara el RClik hasta
que se soltara el botón.
Si por contra cerramos el Form con el botón, Alf+F4 o con la X de cerrar...
funciona perfectamente.
Bueno, eso...
Un Saludo,
Xevi.
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> Con el doble-click no se puede controlar cuando se suelta el botón del
> ratón
> en el segundo click, al menos que yo sepa el API no da ningún mensaje para
> ello, aunque escribo de memoria y es posible que a lo mejor exista. En
> cualquier caso yo no veo que el comportamiento sea extraño pues no es muy
> normal sostener el botón del ratón en un doble-click, pero puedo estar
> equivocado.
>
> En cuanto al RClick, es un evento que se produce cuando se pulsa el botón
> derecho del ratón, y es así como está definido en el API, lo único que
> hacemos es procesar el mensaje de Windows. Deberías utilizar el evento
> oOnRButtonUp que se ejecuta cuando se suelta el botón.
>
> Un saludo,
>
> Incl
> "Xevi" <xevicomas@terra.es> escribió en el mensaje
> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Hola,
>>
>>
>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y veo
>> que el comportamiento es un tanto "extraño"...
>>
>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS TForm2
>> ::Close()
>> RETURN Nil
>>
>> esto me cierra la ventana activa ANTES de soltar el botón.
>> lo mismo ocurre en el evento OnRClick
>>
>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando, creo
>> que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que no
>> se libera el botón.
>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>> evalua cuando el botón es liberado...
>>
>> No se... pero creo que el funcionamiento correcto es el que comento...
>>
>> Un Saludo,
>> Xevi.
>>
>>
>>
>
>
>


Attached files PostMsg.zip (2.8 KB)Â
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Clicks... se evaluan eventos antes de Soltar

Mensaje por Xevi »

Ignacio,
Mientras te estaba escribiendo me contestaste...
De acuerdo en el lo del RClick.
Ahora bien, falta el DblClick, que no creo que sea del control Browse, sinó
de que falta evaluar la función API de soltar el botón.
Si puedes hechar un vistazo al ejemplo que he adjuntado en el anterior post,
te lo agradezco de antemano.
Un Saludo,
Xevi.
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=430ed3fd@ozsrvnegro.ozlan.local...]430ed3fd@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> He estado reflexionando sobre la conveniencia de que el RClick se dispara
> en el 'Down' on el 'Up'. En el caso del botón izquierdo no tengo duda y es
> lógico que el Click se dispare cuando se suelta el botón. Pero en el
> derecho no lo tengo claro, ya que precisamente cuando se suelta el botón
> se evalua el evento OnContextMenu, lo que supondría tener dos eventos con
> el mismo nombre que hacen exactamente lo mismo, pero efectivamente
> compruebo que los controles del API que especialmente procesan RCLICK lo
> disparan después de soltar. Por lo que creo que tienes razón, modificaré
> el Browse para que el RCLICK se dispare cuando se suelte el botón y no
> antes.
>
> Un saludo,
>
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> Con el doble-click no se puede controlar cuando se suelta el botón del
>> ratón en el segundo click, al menos que yo sepa el API no da ningún
>> mensaje para ello, aunque escribo de memoria y es posible que a lo mejor
>> exista. En cualquier caso yo no veo que el comportamiento sea extraño
>> pues no es muy normal sostener el botón del ratón en un doble-click, pero
>> puedo estar equivocado.
>>
>> En cuanto al RClick, es un evento que se produce cuando se pulsa el botón
>> derecho del ratón, y es así como está definido en el API, lo único que
>> hacemos es procesar el mensaje de Windows. Deberías utilizar el evento
>> oOnRButtonUp que se ejecuta cuando se suelta el botón.
>>
>> Un saludo,
>>
>> Incl
>> "Xevi" <xevicomas@terra.es> escribió en el mensaje
>> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Hola,
>>>
>>>
>>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y
>>> veo que el comportamiento es un tanto "extraño"...
>>>
>>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS TForm2
>>> ::Close()
>>> RETURN Nil
>>>
>>> esto me cierra la ventana activa ANTES de soltar el botón.
>>> lo mismo ocurre en el evento OnRClick
>>>
>>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando,
>>> creo que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que
>>> no se libera el botón.
>>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>>> evalua cuando el botón es liberado...
>>>
>>> No se... pero creo que el funcionamiento correcto es el que comento...
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>>
>>
>>
>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Clicks... se evaluan eventos antes de Soltar

Mensaje por ignacio »

Xevi,
El uso de PostMsg es trickyware, como dirían los anglosajones, y no puedes
pretender que en calquier caso se produzca el efecto deseado, al menos esa
es mi opinión. Desaconsejo el uso de PostMsg y más aún cuando lo realizas en
medio de operaciones que de por si generan un montón de mensajes.
En cualquier caso ya he modificado la clase Browse para que su RCLICK se
dispare cuando se suelta el botón y no antes.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:[email=430ed97d@ozsrvnegro.ozlan.local...]430ed97d@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> Recuerdo que en otro Compilador+Gui comente un "error" parecido al
> comentado, pues ocurria cuando se pulsaba click, doble clik... y el efecto
> era el mismo comportamiento que he notado con Xailer el cual he comentado,
> y se arregló, pues afectaba precisamente a ese estado, el no detectar de
> Windows el "soltar" el botón... y se me comento algo parecido del API de
> Windows
>
> Un ejemplo en el que necesito utilizar,...
> en un Browse de una MDICHILD con doble clik por ej. lo utilizo para
> seleccionar un registro, y quiero cerrar la ventana y enviar un PostMsg al
> menu para que se desplegue automáticamente...
>
> ¿Que ocurre tal como está ahora el Evento DblClick???
> que cierra la ventana pero por lo visto WINDOWS tiene una tarea pendiente
> de evaluar al soltar el botón.
>
> ¿Que ocurre tal como está ahora el Evento RClick???
> que cierra la ventana CORRECTAMENTE y WINDOWS no tiene ninguna tarea
> pendiente de evaluar al soltar el botón.
>
> Adjunto un simple Ejemplo que reproduce este efecto que comento...
> Del Menu... Opciones5... opción0501.
> al pulsar doble clic en el Browse, debería desplegar el Menu en su estado
> anterior, pero no lo hace...
> Para ver el efecto... si no soltamos el botón en el segundo clik... cierra
> la ventana y el foco ya lo pasa al menu, iluminando la primera opción de
> éste...
>
> Si le damos al Browse con el botón derecho, cierra la ventana
> correctamente, y desplega el menu correctamente, eso quiere decir que ha
> liberado ya WINDOWS de la tarea de soltar el botón.
> Aunque yo creo que sería mas "correcto" que no se evaluara el RClik hasta
> que se soltara el botón.
>
> Si por contra cerramos el Form con el botón, Alf+F4 o con la X de
> cerrar... funciona perfectamente.
>
>
> Bueno, eso...
>
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> Con el doble-click no se puede controlar cuando se suelta el botón del
>> ratón
>> en el segundo click, al menos que yo sepa el API no da ningún mensaje
>> para
>> ello, aunque escribo de memoria y es posible que a lo mejor exista. En
>> cualquier caso yo no veo que el comportamiento sea extraño pues no es muy
>> normal sostener el botón del ratón en un doble-click, pero puedo estar
>> equivocado.
>>
>> En cuanto al RClick, es un evento que se produce cuando se pulsa el botón
>> derecho del ratón, y es así como está definido en el API, lo único que
>> hacemos es procesar el mensaje de Windows. Deberías utilizar el evento
>> oOnRButtonUp que se ejecuta cuando se suelta el botón.
>>
>> Un saludo,
>>
>> Incl
>> "Xevi" <xevicomas@terra.es> escribió en el mensaje
>> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Hola,
>>>
>>>
>>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y
>>> veo
>>> que el comportamiento es un tanto "extraño"...
>>>
>>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS TForm2
>>> ::Close()
>>> RETURN Nil
>>>
>>> esto me cierra la ventana activa ANTES de soltar el botón.
>>> lo mismo ocurre en el evento OnRClick
>>>
>>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando,
>>> creo
>>> que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que
>>> no
>>> se libera el botón.
>>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>>> evalua cuando el botón es liberado...
>>>
>>> No se... pero creo que el funcionamiento correcto es el que comento...
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>>
>>
>>
>>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Clicks... se evaluan eventos antes de Soltar

Mensaje por ignacio »

Xevi,
No existe tal mensaje del API: WMLBUTTONDBLCLKUP.
No obstante cuando se realiza un doble-click se generan los siguientes
mensajes:
WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, y WM_LBUTTONUP de nuevo.
Te aconsejo que el DobleClick pongas una DATA a VERDADERO, y en LBUTTONUP
dispares el evento cuando dicha DATA este a VERDADERO, y logicamente la
pasas a FALSO de nuevo.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:[email=430eda4e@ozsrvnegro.ozlan.local...]430eda4e@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> Mientras te estaba escribiendo me contestaste...
>
> De acuerdo en el lo del RClick.
>
> Ahora bien, falta el DblClick, que no creo que sea del control Browse,
> sinó de que falta evaluar la función API de soltar el botón.
> Si puedes hechar un vistazo al ejemplo que he adjuntado en el anterior
> post, te lo agradezco de antemano.
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=430ed3fd@ozsrvnegro.ozlan.local...]430ed3fd@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> He estado reflexionando sobre la conveniencia de que el RClick se dispara
>> en el 'Down' on el 'Up'. En el caso del botón izquierdo no tengo duda y
>> es lógico que el Click se dispare cuando se suelta el botón. Pero en el
>> derecho no lo tengo claro, ya que precisamente cuando se suelta el botón
>> se evalua el evento OnContextMenu, lo que supondría tener dos eventos con
>> el mismo nombre que hacen exactamente lo mismo, pero efectivamente
>> compruebo que los controles del API que especialmente procesan RCLICK lo
>> disparan después de soltar. Por lo que creo que tienes razón, modificaré
>> el Browse para que el RCLICK se dispare cuando se suelte el botón y no
>> antes.
>>
>> Un saludo,
>>
>>
>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>> news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
>>> Xevi,
>>>
>>> Con el doble-click no se puede controlar cuando se suelta el botón del
>>> ratón en el segundo click, al menos que yo sepa el API no da ningún
>>> mensaje para ello, aunque escribo de memoria y es posible que a lo mejor
>>> exista. En cualquier caso yo no veo que el comportamiento sea extraño
>>> pues no es muy normal sostener el botón del ratón en un doble-click,
>>> pero puedo estar equivocado.
>>>
>>> En cuanto al RClick, es un evento que se produce cuando se pulsa el
>>> botón derecho del ratón, y es así como está definido en el API, lo único
>>> que hacemos es procesar el mensaje de Windows. Deberías utilizar el
>>> evento oOnRButtonUp que se ejecuta cuando se suelta el botón.
>>>
>>> Un saludo,
>>>
>>> Incl
>>> "Xevi" <xevicomas@terra.es> escribió en el mensaje
>>> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>> Hola,
>>>>
>>>>
>>>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y
>>>> veo que el comportamiento es un tanto "extraño"...
>>>>
>>>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS
>>>> TForm2
>>>> ::Close()
>>>> RETURN Nil
>>>>
>>>> esto me cierra la ventana activa ANTES de soltar el botón.
>>>> lo mismo ocurre en el evento OnRClick
>>>>
>>>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando,
>>>> creo que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>>>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que
>>>> no se libera el botón.
>>>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>>>> evalua cuando el botón es liberado...
>>>>
>>>> No se... pero creo que el funcionamiento correcto es el que comento...
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Clicks... se evaluan eventos antes de Soltar

Mensaje por Xevi »

Ignacio,
GRACIAS...
No sabes lo que se agradece la ayuda,...
dada mi ignorancia, ante la imposibilidad de realizar eso que tan dificil
tengo en frente, a veces tan secilla es la solución como el de colocar una
Data en el sitio adecuado y con el uso preciso.
Muchas gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=430eed6b@ozsrvnegro.ozlan.local...]430eed6b@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> No existe tal mensaje del API: WMLBUTTONDBLCLKUP.
>
> No obstante cuando se realiza un doble-click se generan los siguientes
> mensajes:
>
> WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, y WM_LBUTTONUP de nuevo.
>
> Te aconsejo que el DobleClick pongas una DATA a VERDADERO, y en LBUTTONUP
> dispares el evento cuando dicha DATA este a VERDADERO, y logicamente la
> pasas a FALSO de nuevo.
>
> Un saludo,
>
> "Xevi" <xevicomas@terra.es> escribió en el mensaje
> news:[email=430eda4e@ozsrvnegro.ozlan.local...]430eda4e@ozsrvnegro.ozlan.local...[/email]
>> Ignacio,
>>
>> Mientras te estaba escribiendo me contestaste...
>>
>> De acuerdo en el lo del RClick.
>>
>> Ahora bien, falta el DblClick, que no creo que sea del control Browse,
>> sinó de que falta evaluar la función API de soltar el botón.
>> Si puedes hechar un vistazo al ejemplo que he adjuntado en el anterior
>> post, te lo agradezco de antemano.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>> news:[email=430ed3fd@ozsrvnegro.ozlan.local...]430ed3fd@ozsrvnegro.ozlan.local...[/email]
>>> Xevi,
>>>
>>> He estado reflexionando sobre la conveniencia de que el RClick se
>>> dispara en el 'Down' on el 'Up'. En el caso del botón izquierdo no tengo
>>> duda y es lógico que el Click se dispare cuando se suelta el botón. Pero
>>> en el derecho no lo tengo claro, ya que precisamente cuando se suelta el
>>> botón se evalua el evento OnContextMenu, lo que supondría tener dos
>>> eventos con el mismo nombre que hacen exactamente lo mismo, pero
>>> efectivamente compruebo que los controles del API que especialmente
>>> procesan RCLICK lo disparan después de soltar. Por lo que creo que
>>> tienes razón, modificaré el Browse para que el RCLICK se dispare cuando
>>> se suelte el botón y no antes.
>>>
>>> Un saludo,
>>>
>>>
>>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>>> news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
>>>> Xevi,
>>>>
>>>> Con el doble-click no se puede controlar cuando se suelta el botón del
>>>> ratón en el segundo click, al menos que yo sepa el API no da ningún
>>>> mensaje para ello, aunque escribo de memoria y es posible que a lo
>>>> mejor exista. En cualquier caso yo no veo que el comportamiento sea
>>>> extraño pues no es muy normal sostener el botón del ratón en un
>>>> doble-click, pero puedo estar equivocado.
>>>>
>>>> En cuanto al RClick, es un evento que se produce cuando se pulsa el
>>>> botón derecho del ratón, y es así como está definido en el API, lo
>>>> único que hacemos es procesar el mensaje de Windows. Deberías utilizar
>>>> el evento oOnRButtonUp que se ejecuta cuando se suelta el botón.
>>>>
>>>> Un saludo,
>>>>
>>>> Incl
>>>> "Xevi" <xevicomas@terra.es> escribió en el mensaje
>>>> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>> Hola,
>>>>>
>>>>>
>>>>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y
>>>>> veo que el comportamiento es un tanto "extraño"...
>>>>>
>>>>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS
>>>>> TForm2
>>>>> ::Close()
>>>>> RETURN Nil
>>>>>
>>>>> esto me cierra la ventana activa ANTES de soltar el botón.
>>>>> lo mismo ocurre en el evento OnRClick
>>>>>
>>>>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando,
>>>>> creo que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>>>>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta que
>>>>> no se libera el botón.
>>>>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>>>>> evalua cuando el botón es liberado...
>>>>>
>>>>> No se... pero creo que el funcionamiento correcto es el que comento...
>>>>>
>>>>> Un Saludo,
>>>>> Xevi.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Clicks... se evaluan eventos antes de Soltar

Mensaje por ignacio »

Xevi,
Pa eso estamos ;-)
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:[email=430f1c70@ozsrvnegro.ozlan.local...]430f1c70@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> GRACIAS...
>
> No sabes lo que se agradece la ayuda,...
> dada mi ignorancia, ante la imposibilidad de realizar eso que tan dificil
> tengo en frente, a veces tan secilla es la solución como el de colocar una
> Data en el sitio adecuado y con el uso preciso.
>
> Muchas gracias.
>
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=430eed6b@ozsrvnegro.ozlan.local...]430eed6b@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>> No existe tal mensaje del API: WMLBUTTONDBLCLKUP.
>>
>> No obstante cuando se realiza un doble-click se generan los siguientes
>> mensajes:
>>
>> WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, y WM_LBUTTONUP de nuevo.
>>
>> Te aconsejo que el DobleClick pongas una DATA a VERDADERO, y en LBUTTONUP
>> dispares el evento cuando dicha DATA este a VERDADERO, y logicamente la
>> pasas a FALSO de nuevo.
>>
>> Un saludo,
>>
>> "Xevi" <xevicomas@terra.es> escribió en el mensaje
>> news:[email=430eda4e@ozsrvnegro.ozlan.local...]430eda4e@ozsrvnegro.ozlan.local...[/email]
>>> Ignacio,
>>>
>>> Mientras te estaba escribiendo me contestaste...
>>>
>>> De acuerdo en el lo del RClick.
>>>
>>> Ahora bien, falta el DblClick, que no creo que sea del control Browse,
>>> sinó de que falta evaluar la función API de soltar el botón.
>>> Si puedes hechar un vistazo al ejemplo que he adjuntado en el anterior
>>> post, te lo agradezco de antemano.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>>> news:[email=430ed3fd@ozsrvnegro.ozlan.local...]430ed3fd@ozsrvnegro.ozlan.local...[/email]
>>>> Xevi,
>>>>
>>>> He estado reflexionando sobre la conveniencia de que el RClick se
>>>> dispara en el 'Down' on el 'Up'. En el caso del botón izquierdo no
>>>> tengo duda y es lógico que el Click se dispare cuando se suelta el
>>>> botón. Pero en el derecho no lo tengo claro, ya que precisamente cuando
>>>> se suelta el botón se evalua el evento OnContextMenu, lo que supondría
>>>> tener dos eventos con el mismo nombre que hacen exactamente lo mismo,
>>>> pero efectivamente compruebo que los controles del API que
>>>> especialmente procesan RCLICK lo disparan después de soltar. Por lo que
>>>> creo que tienes razón, modificaré el Browse para que el RCLICK se
>>>> dispare cuando se suelte el botón y no antes.
>>>>
>>>> Un saludo,
>>>>
>>>>
>>>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>>>> news:[email=430ecff3@ozsrvnegro.ozlan.local...]430ecff3@ozsrvnegro.ozlan.local...[/email]
>>>>> Xevi,
>>>>>
>>>>> Con el doble-click no se puede controlar cuando se suelta el botón del
>>>>> ratón en el segundo click, al menos que yo sepa el API no da ningún
>>>>> mensaje para ello, aunque escribo de memoria y es posible que a lo
>>>>> mejor exista. En cualquier caso yo no veo que el comportamiento sea
>>>>> extraño pues no es muy normal sostener el botón del ratón en un
>>>>> doble-click, pero puedo estar equivocado.
>>>>>
>>>>> En cuanto al RClick, es un evento que se produce cuando se pulsa el
>>>>> botón derecho del ratón, y es así como está definido en el API, lo
>>>>> único que hacemos es procesar el mensaje de Windows. Deberías utilizar
>>>>> el evento oOnRButtonUp que se ejecuta cuando se suelta el botón.
>>>>>
>>>>> Un saludo,
>>>>>
>>>>> Incl
>>>>> "Xevi" <xevicomas@terra.es> escribió en el mensaje
>>>>> news:430dcc17$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>>> Hola,
>>>>>>
>>>>>>
>>>>>> Resulta que estoy probando el Doble Click en los objetos de Xailer, y
>>>>>> veo que el comportamiento es un tanto "extraño"...
>>>>>>
>>>>>> METHOD ArrayBrowse1DblClick( oSender, nPosX, nPosY, nItem ) CLASS
>>>>>> TForm2
>>>>>> ::Close()
>>>>>> RETURN Nil
>>>>>>
>>>>>> esto me cierra la ventana activa ANTES de soltar el botón.
>>>>>> lo mismo ocurre en el evento OnRClick
>>>>>>
>>>>>> Por lo visto se lanzan los eventos antes de soltar el botón, cuando,
>>>>>> creo que debería de hacerlo una vez LIBERADO el botón ¿no creeis???
>>>>>> Como cuando se pulsa Clic en un botón, no se lanza el evento hasta
>>>>>> que no se libera el botón.
>>>>>> O... probado el OnContextMenu... ese si funciona correctamente,... se
>>>>>> evalua cuando el botón es liberado...
>>>>>>
>>>>>> No se... pero creo que el funcionamiento correcto es el que
>>>>>> comento...
>>>>>>
>>>>>> Un Saludo,
>>>>>> Xevi.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder