Y con BUTTONBMP que pasa? saludos.
Y con BUTTONBMP que pasa? saludos.
#include "FiveWin.ch"
function Main()
local oDlg
SkinButtons()
DEFINE DIALOG oDlg
@ 2, 2 BUTTON oBtn PROMPT "Test" ACTION MsgInfo( "ok" )
ACTIVATE DIALOG oDlg CENTERED
return nilAntonio:
El mal comportamiento solo es utilizando la entrada tactil de la tablet, si conecto un raton a la tablet y pulso usando el raton, no hay problemas, funciona exactamente igual que el el pc de sobremesa, si uso un touchpad que se le puede conectar a la tablet, tambien funciona bien siempre que utilice los botones del touchpad que simulan los del ratón, pero si uso los gestos sobre el touchpad, el comportamiento es errático, no siempre ejecuta la acción dos veces.
Con los btnbmp no ocurre, pero me temo que se debe a que la pulsación del raton en esta clase está dividida en varios eventos (pulsar-mantener pulsado-levantar).
Repito que sólo pasa utilizando la entrada tactil de las tablets, tanto en win 8.1 como win 10 y siempre que tengamos la llamada a skinbuttoms().
Un saludo
José Luis
José Luis,
Que tablet usas ?
Function FWSkinBtnKeyUp( hWnd, nKey, nFlags )
local hDC
If nKey == 32
hDC = GetDC( hWnd )
FWSkinBtnPaint( hWnd, hDC, .F. )
ReleaseDC( hWnd, hDC )
EndIf
MsgBeep()
Return nilAntonio:
Esta tarde lo pruebo, ahora durante la mañana estan en uso las dos tablets, una es ASUS T100, y la otra bq Tesla w8, en ambas el comportamiento es exactamente el mismo.
Edito:
Realizo la prueba con el test que me indicaste, añadiendole SkinButtons() y la función que me indicaste en el post superior y los resultados obtenidos son los siguientes en ambas tablets:
Usando un raton conectado al USB de la misma pulso el boton "Test" suena el sonido del sistema y aparece el msginfo pulso su boton y volvemos al dialogo inicial (un sonido)
Usando mis dedos contra el cristal de la tablet pulso el boton "Test" aparece el msginfo pulso su boton y suena el sonido del sistema, aparece el msginfo pulso su boton, suena el sonido del sistema y vuelve a aparecer el msginfo, pulso su boton y vuelvo al diálogo inicial (dos sonidos)
Este último comportamiento es identico si en la tablet ASUS pogo su teclado y hago lo mismo usando el touchpad sin tocar los botones que similan a los del raton.
un saaludo
Antonio:
Realizo la prueba con el test que me indicaste, añadiendole SkinButtons() y la función que me indicaste en el post superior y los resultados obtenidos son los siguientes en ambas tablets:
Usando un raton conectado al USB de la misma pulso el boton "Test" suena el sonido del sistema y aparece el msginfo pulso su boton y volvemos al dialogo inicial (un sonido)
Usando mis dedos contra el cristal de la tablet pulso el boton "Test" aparece el msginfo pulso su boton y suena el sonido del sistema, aparece el msginfo pulso su boton, suena el sonido del sistema y vuelve a aparecer el msginfo, pulso su boton y vuelvo al diálogo inicial (dos sonidos)
Este último comportamiento es identico si en la tablet ASUS pogo su teclado y hago lo mismo usando el touchpad sin tocar los botones que similan a los del raton.
Un saludo
ok, gracias
sigo revisando a ver de donde pueda venir ese comportamiento
Function FWSkinBtnLButtonDown( hWnd, nRow, nCol )
local hDC := GetDC( hWnd )
local oBtn := oWndFromhWnd( hWnd )
hWndDown = hWnd
SetFocus( hWnd )
SysRefresh()
lBtnPressed = .T.
lMOver = .F.
FWSkinBtnPaint( hWnd, hDC, lBtnPressed )
ReleaseDC( hWnd, hDC )
MsgBeep()
Return nilAntonio:
Disculpa la demora, pero hasta esta tarde no puedo hacer las pruebas correspondientes, en cuanto las efectúe te reporto los datos.
Un saludo
Bueno, ante todo disculparme por la demora, pero la tarea me tenia desbordado, asi que ahora que he tenido tiempo he realizado las pruebas, con tres tablets, con windows 8.1 y 10, el comportamiento en todas es el mismo:
La acción definida en un boton se ejecuta dos veces cuando se pulsa directamente con el dedo en la pantalla táctil, igual ocurre si le añado la función que indicó Antonio -- FWSkinBtnKeyUp --, sin embargo, el comportamiento es correcto cuando añado la función -- FWSkinBtnLButtonDown --
Agradezco tu ayuda Antonio, parece ser que ya está claro que es el responsable del raro comportamiento cuando el SkinButtons está activo.
Un saludo
Entonces con la función FWSkinBtnLButtonDown() modificada ya has podido solucionarlo, si ?
Antonio:
Efectivamente.
Gracias
Saludos