Показать сообщение отдельно
  #14  
Старый 26.08.2012, 16:34
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Dmitry_DM
Поправил, исправилось только правильное показания процентов громкости при втором и далее проигрываемом файле, с первым и раньше было нормально. Но начальная громкость на 50% так и не стала, сразу на 100%, подвигаешь ползунок - все норм.
Ну так а как ты устанавливаешь громкость? А вот так:
Код:
  SetMPVolume(MediaPlayer1, 1000 - TrackBar1.Position * 50);
А теперь внимание вопрос: За что отвечает TrackBar1? Может всё-же стоит переименовать TrackBar1 и TrackBar2 в более человеческие имена, чтобы самому-же и не путаться?

Цитата:
Сообщение от Dmitry_DM
Цитата:
Сообщение от poli-smen
Обработчик Timer1Timer вообще руки чешутся подсократить...
Зачем? По-моему там все нормально.
Да мне-то тоже этот обработчик не мешает - он же не в моей программе.

Цитата:
Сообщение от Dmitry_DM
Процедура Add to list работает и без этого. Мне кажется, смысла в FindClose нету. Или я ошибаюсь?
То есть раз работает, значит работает правильно? И зачем только эту бесполезнейшую FindClose придумали?..
Вот когда происходят катастрофы и у ответственных лиц спрашивают "Почему у вас был заварен предохранительный клапан?", на что они отвечают: "Установка работала и без этого. Мне кажется, смысла в предохранительном клапане нету. Или я ошибался?"

И ещё. Зачем там 2 раза подряд используется FindNext?

Цитата:
Сообщение от Dmitry_DM
Исправил так:
Код:
if ListBox1.Count>1 then
И что от этого сильно изменилось? Вот открываю я одновременно 2 файла, после этого открываю другие файлы, но они в список не добавляются, а остаются те первые 2, да ещё и начинают играть, хотя Autoplay у меня отключен.

Цитата:
Сообщение от Dmitry_DM
Цитата:
Сообщение от poli-smen
Ещё в двух местах у тебя есть такой код:
Код:
    //***автоматически выделяем первый файл в списке
    ListBox1.Selected[0]:=true;
    //***автоматически воспроизводим выделенный
    if CheckBox1.Checked then MediaPlayer1.Play;
А почему ты думаешь, что если выделить в списке первый элемент, то медиаплеер будет именно его воспроизводить?
Потому что если нажать на галочку Autoplay, так и будет.
Что так и будет? Будет воспроизводиться файл который последним воспроизводился (который не обязательно первый). А вопрос был: Почему ты уверен, что будет воспроизводиться первый файл из списка?

Цитата:
Сообщение от Dmitry_DM
Цитата:
Сообщение от poli-smen
И ещё объясни мне смысл вот этой строчки:
Код:
Len:=Mediaplayer1.TrackLength[ListBox1.ItemIndex];
Она служит для вычисления времени. Вот:
Код:
Pos := Mediaplayer1.Position;
    MinLeft := ((Len - Pos) div 1000) div 60;//осталось мин
    SecLeft := ((Len - Pos) div 1000) mod 60;//осталось сек
То куда пойдёт значение Len я вижу. Я хотел, чтобы ты мне объяснил загадочную связь между свойством "Mediaplayer1.TrackLength" и свойством "ListBox1.ItemIndex".
Ответить с цитированием