Цитата:
Сообщение от vah-smile
Вот сделал следующее:
Код:
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
with MediaPlayer1 do
begin
Filename := Listbox1.items.strings[listbox1.itemindex];
Open;
Display := Panel2;
DisplayRect := Panel2.ClientRect;
Play;
end;
TrackBar1.Max := MediaPlayer1.Length;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.Position := Mediaplayer1.Position;
MediaPlayer1.Play;
end;
В итоге TrackBar1 "следит" за воспроизведением.
|
Эта задача решается проще:
Код:
procedure TForm1.Timer1Timer;
begin
with MediaPlayer1 do
if FileName<>'' then
TrackBar1.Position:=Round(200*Position/Length);
end;
В моём случае 200 - число делений в тракбаре (max=200).
При этом в ListBox никаких манипуляций с таймером и тракбаром делать не надо.
Аналогично организуется и процесс перемотки:
Код:
with MediaPlayer1 do
if FileName<>'' then
Position:=Round(TrackBar1.Position*Length/200);
Но вопрос о условии нажатой кнопки мыши при этом всё равно остаётся открытым.