Muchas gracias por tu respuesta ecfisa.. lo que sucede es que de esta maner entra lo mismo 3 veces o lo que le diga
WheelScrollLines, con lo cual sigue sumando el contador de las imagenes a mostrar...
No hago scroll, por lo tanto Scrollby no es usado.... pero he encontrado una manera (con la variable
Handled) y la pongo aqui para que otra persona con el mismo problema la use :
Código Delphi
[-]
........
......
var
Movimiento, Posicion, PosMaxima : Integer;
.....
.....
....
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
Posicion := Posicion + Movimiento;
if Posicion < 0 then
Posicion := 0;
MostrarImagen (Posicion);
Handled := True; end;
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
Posicion := Posicion + Movimiento;
if Posicion >= PosMaxima then
Posicion := PosMaxima-1;
MostrarImagen (Posicion);
Handled := True;
end;
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
Movimiento := WheelDelta div 120;
end;
WheelDelta tiene un valor de 120 o -120 cuando se mueve apenas la ruedita hacia arriba o hacia abajo respectivamente por eso la variable
Movimiento siempre se suma porque su signo cambia automáticamente, yo uso esta forma porque si se mueve la rueda despacio, Movimiento es 1 o -1 pero si movemos la rueda mas fuerte Movimiento puede ser mayor con lo cual incremenatmos o decrementamos de a más de uno, que es lo que el usuario supuestamente quiere, por mover la ruedita mas rápido...
Bueno espero que esto le sirva a alguien más.... saludos..