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

Цитата:
Сообщение от Dmitry_DM
Ладно. Переделаю. Может лучше получится. Спасибо за совет. Хоть посмотрите программу, скажите как вам стиль.
Программу не запускал, а вот стиль исходника плохенький...
Форматирование хромает. Компоненты не переименованы (всякие там 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;
...
И почему происходит такое присваивание?:
Код:
      TrackBar2.Max:=mediaplayer1.Length;
Ведь TrackBar2 вроде отвечает за громкость? А ему дают продолжительность... Не это ли твои непонятки с прыжками громкости?

Обработчик Timer1Timer вообще руки чешутся подсократить...

В Button10Click вижу FindFirst и FindNext, а где FindClose?

Цитата:
Сообщение от Dmitry_DM
во-первых: при двойном клике файл открывается, проигрывается, при открытии нового файла, все-равно остается прошлый файл в ListBox1
Конечно остаются прошлые файлы. А виной всему загадочная проверка при открытии файлов:
Код:
if ListBox1.Count>0 then
Если при открытии список пустой, то в него добавляются открываемые файлы, если же список уже заполнен, то открываемые файлы игнорируются и вместо них ставится на воспроизведение текущий выбранный в списке.

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

И ещё объясни мне смысл вот этой строчки:
Код:
Len:=Mediaplayer1.TrackLength[ListBox1.ItemIndex];
Ответить с цитированием