Тема: Listbox+Trackbar
Показать сообщение отдельно
  #13  
Старый 26.05.2009, 21:19
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
По умолчанию

Цитата:
Сообщение от 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);
Но вопрос о условии нажатой кнопки мыши при этом всё равно остаётся открытым.
Ответить с цитированием