![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте,нужна помощь,сделал плеер на bass.dll приделал Trackbar (AdvTrackBar1 TMS Component Pack) в качестве перемотки ,проблема в следующем если прокрутить ползунок (к примеру больше чем на 1,45 сек) он пропадает и появляется на начальной позиции,песня же продолжает играть как решить проблему?
Последний раз редактировалось Amzi, 07.11.2012 в 20:02. |
|
#2
|
||||
|
||||
|
Цитата:
|
|
#3
|
||||
|
||||
|
Цитата:
Может это глюк в самом компоненте, а может и нет, скиньте код программы. |
|
#4
|
|||
|
|||
|
procedure TForm_Player.Player;
Код:
//полоса проигрывания
AdvTrackBar1.Min:=0;
AdvTrackBar1.Max:=bass_ChannelGEtLength(Channel, 0) -1;Код Trackbar-а Событие на mouse down Код:
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); |
|
#5
|
||||
|
||||
|
У меня на MouseDown:
Код:
if GetKeyState(1) shr 31 = 1 then begin PlayBar.Position := Round(X * (PlayBar.Max / PlayBar.Width)); ProgressMouseDown := True end; На MouseMove: Код:
// Если была нажата левая клавиша мышки, то продолжаем if GetKeyState(1) shr 31 = 1 then PlayBar.Position := Round(X * (PlayBar.Max / PlayBar.Width)); MouseUp: Код:
// Если была нажата левая клавиша, то продолжаем
if Button = mbLeft then
begin
BASS_ChannelSetPosition(Channel, PlayBar.Position, 0);
ProgressMouseDown := False
end;Код:
if ProgressMouseDown = False then PlayBar.Position := BASS_ChannelGetPosition(Channel, 0); ProgressMouseDown - глобальная переменная типа Boolean. Попробуйте вышеприведенный код, скопировал с проекта Последний раз редактировалось sariman, 08.11.2012 в 17:28. |
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
||||
|
||||
|
Значит проблема в самом компоненте, попробуйте кинуть обычный trackbar и попробуйте.
|