Показать сообщение отдельно
  #13  
Старый 26.08.2012, 12:41
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от 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
Конечно остаются прошлые файлы. А виной всему загадочная проверка при открытии файлов:
Код:
if ListBox1.Count>0 then
Если при открытии список пустой, то в него добавляются открываемые файлы, если же список уже заполнен, то открываемые файлы игнорируются и вместо них ставится на воспроизведение текущий выбранный в списке.
Исправил так:
Код:
if ListBox1.Count>1 then
Цитата:
Сообщение от 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;//осталось сек
Ответить с цитированием