Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Obtener configuración en Windows del incremento de la Rueda de Raton (https://www.clubdelphi.com/foros/showthread.php?t=56429)

gluglu 16-05-2008 19:59:11

Obtener configuración en Windows del incremento de la Rueda de Raton
 
Hola Compañer@s !

Cómo puedo obtener en mi programa Delphi el valor configurado en Windows correspondiente al número de incrementos que se producen cada vez que se gira la rueda del ratón ?

Gracias por vuestra ayuda. ;)

gluglu 16-05-2008 20:08:21

Encontré esto

Cita:

SystemInformation..::.MouseWheelScrollDelta Property


Gets the amount of the delta value of a single mouse wheel rotation increment.

Como puedo obtener dicho valor en Delphi ? :confused:

cHackAll 16-05-2008 21:37:07

Acaso no es una constante??? (WHEEL_DELTA)

gluglu 16-05-2008 22:38:48

Gracias Javier,

He estado indagando acerca de WHEEL_DELTA como constante y WheelDelta como parámetro pasado en el evento OnMOuseWheel. También ví este hilo tuyo.

Lo que pasa es que precisamente WHEEL_DELTA es una constante que (creo) define el número de píxeles a mover.

Mi problema surge por otro lado. Al parecer, al estar trabajando con un componente de terceros, el evento OnMouseWheel (o también OnMouseWheelDown y OnMouseWheelUp) se me ejecuta tres veces cada vez que giro la rueda de ratón.

Si pongo Handled := True en dicho evento, a pesar de todo me vuelve a ejecutar en este caso dos veces el mismo evento ! :eek:

Por más que intento encontrar el por qué, no me lo explico. Entiendo, y además lo he utilizado en otras partes de mi programa donde no utilizo este componente de terceros, que con Handled := True debe de ejecutarme el OnMouseWheel una única vez. Pues no .... :mad: Dos veces.

Y no tengo forma de evitarlo. Por eso estaba indagando acerca del valor definido en el Panel de Control de Windows para el valor de la rueda del ratón. Y apañarmelas yo de alguna manera. Pero por eso parece que el WHEEL_DELTA no me sirve porque al analizarlo, el valor de la constante es 120 y no es ningún valor concreto que me indica el número de veces previsto que se va a ejecutar la rutina OnMouseWheel en el (teórico) caso de que no utilizara Handled := True.

A lo mejor alguien sabe ayudarme de otra manera.

Gracias de nuevo :)

gluglu 16-05-2008 23:31:35

Busqué .... y encontré .... :p

Código Delphi [-]
SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, My_Value, 0)

Me devuelve el valor que busco del número de avances que provoca cada giro de la rueda del ratón dentro de la variable My_Value que es del tipo LongBool.

cHackAll 16-05-2008 23:38:09

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var Value: Cardinal;
begin
 SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @Value, 0);
 ShowMessage(IntToStr(Value));
end;

Lo mismo te hiba a decir, ahora solo te corrijo a pesar de no ser el adecuado; :(

Cita:

Empezado por gluglu (Mensaje 287310)
...A lo mejor alguien sabe ayudarme de otra manera.

Saludos


La franja horaria es GMT +2. Ahora son las 06:53:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi