А причём здесь смещение в LisiView, что-то здесь не то. Так логичнее
Код:
if (q<=PlayID) then
begin
if PlayID=q then begin PlayID:=n; exit; end;
if (PlayID<=N) then Dec(PlayID) else Exit;
end else
if (PlayID>=N) then Inc(PlayID) else Exit;
обрисуйте пжлст задачу, может есть более простое решение