Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Trackbar - Help!

Автор: Артемий2 24.07.2006 19:43

Как сделать чтобы TrackBar умел перематывать музыку? mega_chok.gif

Автор: GoodWind 25.07.2006 0:45

с помощью чегшо проигрываешь музыку?

Автор: GoodWind 25.07.2006 1:08

подозреваю, что с помощью TMediaPlayer.
значит так...

при открытии файла нужно сделать:

Код
ScrollBar1.Max:=MediaPlayer1.Length;

т.е. максимальное значение трекбара (в моем случае скроллбара, разницы нет) теперь является концом песни.


ну и в обработчике события OnChange пишем:
Код
if Sender<> Timer1 then
begin
ScrollBar1.Max:=MediaPlayer1.Length;
MediaPlayer1.Play;
end;



собственно, все... ну и для красоты засунем таймер с небольшим интервалом - пусть передвигает нам ползунок трекбара...
Код
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ScrollBar1.Position:=MediaPlayer1.Position;
end;


метод, конечно "через Жо", просто первое, что пришло в голову...

да, и не забывай приостанавливать таймер при остановке\паузе песни..

Автор: volvo 25.07.2006 1:39

Цитата(GoodWind @ 24.07.2006 21:08)
ну и для красоты засунем таймер с небольшим интервалом - пусть передвигает нам ползунок трекбара...

Вот ДО этого момента все будет работать, но как только навесишь на таймер действие
TrackBar1.Position := MediaPlayer1.Position;

(Все-таки, Track-Bar был в вопросе wink.gif ), начнутся глюки... Будет замечаться скакание песни вперед/назад, ибо каждый раз по таймеру теперь вызывается TTrackBar.OnChange...

Стоп... Ясно, вот Sender проверить я не догадался... Sorry... Должно работать... unsure.gif

Автор: GoodWind 25.07.2006 2:01

Цитата
Будет замечаться скакание песни вперед/назад, ибо каждый раз по таймеру теперь вызывается TTrackBar.OnChange...

а как до меня долго доходила причина этого скакания =)
надо чаще спать lol.gif

Автор: Артемий2 25.07.2006 20:57

ScrollBar1.Max:=MediaPlayer1.Length;

Куда этот код вставить?
У меня ваш способ не работает! mega_chok.gif
А нельзя выслать более корректный способ? cool.gif