Página 1 de 1

Problema con la rueda del Mouse

Publicado: Mar Mar 03, 2020 3:43 pm
por bingen
Buenas xTeam hay una problemita que a veces juega malas pasadas, me explico:

Cuando en un browse subes y bajas con la rueda del ratón, la linea con el foco es además la línea que tiene el cursor con la flecha en el Recordselector, pero si el browse pasa a ser
nMarqueeStyle := bmHIGHLROWMS
es decir, multiselección, entonces pasan a ser dos macas independientes, solo si lo mueves con el ratón por que con el teclado siguen funcionando al unísono.
Y esto lleva al problema que me ocupa, cuando un cliente mueve la rueda y ve una línea en azul de lado a lado y le da por ejemplo a borrar, borra otra línea, la que tiene el recordselector y ya está liada "la culpa es del programador".

Como hacer para que al mover la rueda del ratón sea como en cualquiera de los casos sin multiselección, aunque signifique perder lo seleccionado a priori, me parece un comportamiento más coherente para "esos clientes"

Salu2.

Re: Problema con la rueda del Mouse

Publicado: Mar Mar 03, 2020 4:44 pm
por bingen
De momento lo he arreglado sobrecargando esto:
METHOD WMMouseWheel( nWParam, nLParam ) Class tBrowse

IF lGetKeyState( VK_CONTROL ) //Ctrl+Rueda del ratón amplia o reduce la letra del browse entre 5 y 20
If nWParam<0
Try
If ::oFont:nSize>5
::oFont:nSize--
::oHeader:oFont:nSize--
Endif
::GoUp()
End
Else
Try
If ::oFont:nSize<20
::oFont:nSize++
::oHeader:oFont:nSize++
Endif
::GoDown()
End
Endif
::AdjustCols()
::nRowHeight:=0
Else
If ::nMarqueeStyle = bmHIGHLROWMS //En los multiselección que al mover la Rueda deseleccione
::Select(0)
Endif
Endif

Return ::Super:WMMouseWheel( nWParam, nLParam )

Re: Problema con la rueda del Mouse

Publicado: Mar Mar 03, 2020 5:44 pm
por ignacio
Buenas tardes,

Siempre hemos intentado seguir el comportamiento del TListbox multiselect y éste no quita la selección cuando se utiliza la rueda del ratón. A diferencia del TListbox multiselect, el browse de Xailer si marca SIEMPRE el 'item' activo, independiente de que haya o no una selección y esto es esencial para que las operación CRUD se puedan hacer incluso con selecciones activas. Y por dicho motivo, cuando es multiselect el registro activo se marca con un rectángulo de puntos:
2020-03-03 17_38_50.png
2020-03-03 17_38_50.png (53.98 KiB) Visto 8336 veces
No obstante, tu solución de desmarcar todo cuando se mueve la rueda es correcta si tus usuarios lo desean así y más aún cuando ya tienes el método sobrecargado. Precisamente para eso están las clases T y las X.

Un saludo

Re: Problema con la rueda del Mouse

Publicado: Mié Mar 04, 2020 8:53 am
por bingen
No son los usuarios los que lo desean así, pero como me encuentro quien borra líneas que según el/ella no han marcado, etc... cortar por lo sano, es mejor el remedio que la enfemedad.

Gracias.

Re: Problema con la rueda del Mouse

Publicado: Mié Mar 04, 2020 9:45 am
por ignacio
bingen escribió:No son los usuarios los que lo desean así, pero como me encuentro quien borra líneas que según el/ella no han marcado, etc... cortar por lo sano, es mejor el remedio que la enfemedad.

Gracias.
Yo, como programador habría borrado todos los registros marcados :D