Цитата:
Сообщение от poli-smen
Программу не запускал, а вот стиль исходника плохенький...
Форматирование хромает. Компоненты не переименованы (всякие там Button7, Label5, TrackBar2).
Почему в Button7Click дважды открывается MediaPlayer1?:
Код:
procedure TForm1.Button7Click(Sender: TObject);
begin
...
MediaPlayer1.FileName:=FileName;
MediaPlayer1.Open;
...
mediaplayer1.FileName:=listbox1.Items.Strings[listbox1.itemindex];
mediaplayer1.Open;
...
|
Поправил.
Цитата:
Сообщение от poli-smen
И почему происходит такое присваивание?:
Код:
TrackBar2.Max:=mediaplayer1.Length;
Ведь TrackBar2 вроде отвечает за громкость? А ему дают продолжительность...  Не это ли твои непонятки с прыжками громкости?
|
Поправил, исправилось только правильное показания процентов громкости при
втором и далее проигрываемом файле, с первым и раньше было нормально. Но начальная громкость на 50% так и не стала, сразу на 100%, подвигаешь ползунок - все норм.
Цитата:
Сообщение от poli-smen
Обработчик Timer1Timer вообще руки чешутся подсократить...
|
Зачем? По-моему там все нормально.
Цитата:
Сообщение от poli-smen
В Button10Click вижу FindFirst и FindNext, а где FindClose?
|
Процедура Add to list работает и без этого. Мне кажется, смысла в FindClose нету. Или я ошибаюсь?
Цитата:
Сообщение от poli-smen
Конечно остаются прошлые файлы. А виной всему загадочная проверка при открытии файлов: Если при открытии список пустой, то в него добавляются открываемые файлы, если же список уже заполнен, то открываемые файлы игнорируются и вместо них ставится на воспроизведение текущий выбранный в списке.
|
Исправил так:
Цитата:
Сообщение от poli-smen
А почему ты думаешь, что если выделить в списке первый элемент, то медиаплеер будет именно его воспроизводить?
|
Потому что если нажать на галочку Autoplay, так и будет.
Цитата:
Сообщение от poli-smen
И ещё объясни мне смысл вот этой строчки:
Код:
Len:=Mediaplayer1.TrackLength[ListBox1.ItemIndex];
|
Она служит для вычисления времени. Вот:
Код:
Pos := Mediaplayer1.Position;
MinLeft := ((Len - Pos) div 1000) div 60;//осталось мин
SecLeft := ((Len - Pos) div 1000) mod 60;//осталось сек