Zamla | Дата: Среда, 07.11.2012, 15:09 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Здравствуйте,сделал mp3 плеер по уроку на сайте все работает отлично но вот возник вопрос, как заменить перемотку песни scroll bar на Track Bar (AdvTrackBar) из TMS Component Pack .
Сообщение отредактировал Zamla - Среда, 07.11.2012, 15:20 |
|
| |
xaramamburu | Дата: Четверг, 08.11.2012, 22:16 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Zamla, Замените везде scrollbar1 на имя вашего AdvTrackBar, думаю должно работать.)))))))))))))
|
|
| |
Zamla | Дата: Суббота, 10.11.2012, 21:49 | Сообщение # 3 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Если бы все было так просто:) Заменил scrollbar1 на AdvTrackBar и теперь если прокрутить ползунок (к примеру больше чем на 1,45 сек) он пропадает и появляется на начальной позиции,песня же продолжает играть.
Попробывал вот так,все тоже самое
procedure TForm_Player.Player; AdvTrackBar1.Min:=0; AdvTrackBar1.Max:=bass_ChannelGEtLength(Channel, 0) -1; ... end; var p: real; begin if mode<>play then Exit; p:=AdvTrackBar1.Max/advTrackBar1.Width; AdvTrackBar1.Position:=round(x*p); bass_ChannelSetPosition(Channel, AdvTrackBar1.Position, 0); end;
Событие на Mouse move var p: real; begin if mode<>play then Exit; if ssleft in shift then //если нажата левая кнопка мыши begin p:=AdvTrackBar1.Max/AdvTrackBar1.Width; AdvTrackBar1.Position:=round(x*p); bass_ChannelSetPosition(Channel, AdvTrackBar1.Position, 0); end; end;
Событие на On Timer AdvTrackBar1.Position:=bass_channelGetPosition(channel,0);
Сообщение отредактировал Zamla - Суббота, 10.11.2012, 21:51 |
|
| |
xaramamburu | Дата: Воскресенье, 11.11.2012, 17:50 | Сообщение # 4 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Zamla, Попробуй так: procedure TForm_Player.Player; AdvTrackBar1.Min:=0; AdvTrackBar1.Max:=bass_ChannelGEtLength(Channel, 0) -1; ... end;
В процедуре procedure TForm_player.Timer1Timer(Sender: TObject); в место: //устанавливаем позицию scrollbar в зависимоти от позиции трека scrollbar1.Position:=bass_channelGetPosition(channel,0); пишем: AdvTrackBar1.Position:=bass_channelGetPosition(channel,0); Событие на Mouse move AdvTrackBar1: begin if mode<>play then Exit; if ssleft in shift then //если нажата левая кнопка мыши bass_ChannelSetPosition(Channel, AdvTrackBar1.position, 0); end;
Специально попробовал у себя, все ОК.))))))))))
|
|
| |
Zamla | Дата: Воскресенье, 11.11.2012, 20:40 | Сообщение # 5 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| xaramamburu Со стандартным trackbar-ом прокатывает с этим нет =\ Ползунок возвращается..
|
|
| |
xaramamburu | Дата: Воскресенье, 11.11.2012, 20:56 | Сообщение # 6 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Zamla, Дак я пробовал не со стандартным, а AdvTrackBar. Все работало.))))))))))))
|
|
| |