01.05.2007, 21:05
общий
это ответ
<i>Здравствуйте, <b>VaNuk</b>!</i>
Смотрите примерный код в приложении. Комментарии в нем же.
Для отслеживания используется Таймер.
Кнопка Button1 - кнопка "Открыть...".
Panel1 - используется как элемент отображения (MediaPlayer1.Display)
<i>Удачи!</i>
Приложение:
unit Unit14;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, MPlayer, StdCtrls;type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; TrackBar1: TTrackBar; Timer1: TTimer; OpenDialog1: TOpenDialog; Button1: TButton; Panel1: TPanel; procedure FormCreate(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } // Специальный флаг - позволяет работать с // TrackBar‘ом не только пользователю, но // и таймеру fChanging: Boolean; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}// Создание формы// Form1.OnCreateprocedure TForm1.FormCreate(Sender: TObject);begin // Устанавливаем флаг изменения TrackBar1 fChanging:= True;end;// Изменение значения TrackBar‘a// TrackBar1.OnChangeprocedure TForm1.TrackBar1Change(Sender: TObject);begin with MediaPlayer1 do // Если меняет не таймер, то if not fChanging then begin Pause; // Меняем позицию Position:= TrackBar1.Position; Play; end; // Сбрасываем флаг изменения fChanging:= False;end;// Timer1.OnTimerprocedure TForm1.Timer1Timer(Sender: TObject);begin // Устанавливаем флаг изменения // Данный флаг говорит о том, что изменение производится // не пользователем, а таймером fChanging:= True; // Устанавливаем позицию TrackBar1 TrackBar1.Position:= MediaPlayer1.Position;end;// Нажатие на кнопку "Открыть"// Button1.OnClickprocedure TForm1.Button1Click(Sender: TObject);begin // Диалог открытия файлов if not OpenDialog1.Execute then Exit; with MediaPlayer1 do begin // Открываем файл FileName:= OpenDialog1.FileName; Open; // Запускаем файл Play; // Устанавливаем длину TrackBar1, равную длине // фильма fChanging:= True; TrackBar1.Max:= Length; end;end;end.