Помощь - Поиск - Пользователи - Календарь
Полная версия: Trackbar - Help!
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Артемий
Как сделать чтобы TrackBar умел перематывать музыку? mega_chok.gif
GoodWind
с помощью чегшо проигрываешь музыку?
GoodWind
подозреваю, что с помощью 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
Цитата(GoodWind @ 24.07.2006 21:08)
ну и для красоты засунем таймер с небольшим интервалом - пусть передвигает нам ползунок трекбара...

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

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

Стоп... Ясно, вот Sender проверить я не догадался... Sorry... Должно работать... unsure.gif
GoodWind
Цитата
Будет замечаться скакание песни вперед/назад, ибо каждый раз по таймеру теперь вызывается TTrackBar.OnChange...

а как до меня долго доходила причина этого скакания =)
надо чаще спать lol.gif
Артемий
ScrollBar1.Max:=MediaPlayer1.Length;

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