Cобытие OnPositionChange наступает только если пользователь сам (кликом по контролам управления) меняет позицию.
Скорее всего это тебе неподойдет, вообще currentPosition у WindowsMediaPlayer1 типа Double(Тип с плавающей запятой, поддерживающий приблизительно 15 цифр точности) а это значит что ты никогда не получишь currentPosition = 7 от этого у тебя и все проблемы, мой вариант (рабочий проверял) в Timer'е прописать следующий код (Timer1.Interval:=10):
Код:
Label1.Caption:=FormatFloat('#',WindowsMediaPlayer1.controls.currentPosition);//выводим Double без цифр после запятой и переводим в string
if Label1.Caption = '7' then //проверяем значение(теперь string'овое)
WindowsMediaPlayer1.controls.currentPosition:=0;//установливаем в начало