Урок 46 - Пишем MediaPlayer, часть(6/7)
В этом уроке мы сделаем сохранение плей-листа в файл и его загрузку.
Начнём, вытащим 2 кнопочки на форму "Открыть" и "Сохранить":
И создаем обработчик на кнопке "Сохранить" и пишем код:
procedure TForm1.Button8Click(Sender: TObject); begin ListBox2.Items.SaveToFile('C:\List.txt'); // Сохраняем плей-лист end;И сразу сделаем загрузку, в обработчике на кнопке "Открыть" пишем:
procedure TForm1.Button7Click(Sender: TObject); var i: integer; begin ListBox2.Items.LoadFromFile('C:\List.txt'); // Загружаем ListBox1.Items.LoadFromFile('C:\List.txt'); // файл for i:=0 to ListBox1.Items.Count-1 do // Оставляем в первом ListBox'e только имена файлов listBox1.items.strings[i]:=Extractfilename(ListBox1.items.strings[i]); end;Проверим. Добавим... Сохраним... Загрузим...
Работает, на диске "С" создается файл "List.txt" с добавленными треками, но если пользователь захочет сохранить несколько плей-листов, у него ничего не получится, файл будет каждый раз переписываться, заменяя старые песни. Добавим возможность выбора пути для сохранения и загрузки плей-листа. Вытащим 2 компонента: TOpenDialog и TSaveDialog, изменим обработчики сохранения и открытия, просто замени путь который мы указали сами на путь из диалогов:
if SaveDialog1.Execute = true then ListBox2.Items.SaveToFile(SaveDialog1.FileName); // Сохраняем плей-листИ:
procedure TForm1.Button7Click(Sender: TObject); var i: integer; begin if OpenDialog2.Execute = false then exit; ListBox2.Items.LoadFromFile(OpenDialog2.FileName); // Загружаем ListBox1.Items.LoadFromFile(OpenDialog2.FileName); // файл for i:=0 to ListBox1.Items.Count-1 do // Оставляем в первом ListBox'e только имена файлов listBox1.items.strings[i]:=Extractfilename(ListBox1.items.strings[i]); end;Вот и все, плеер почти готов, осталось только добавить Drag-and-drop и кое-что подправить в интерфейсе, это мы сделаем в следующем уроке.
Удачи!
Встретимся в следующем уроке!
Добавил(а): Mikhail | Дата: 2013-06-08 | |
А как сделать так чтоб в плей листе само по порядку проигрывала
чтоб самому не нажимать на каждую песню
а то все испробовал чего то не получается
|
Добавил(а): Admin | Дата: 2013-06-09 | |
Вытащить на форму таймер и написать в него:
if (Bass_ChannelisActive(stream)= BASS_ACTIVE_STOPPED) and
(ListBox1.Items.Count > 1) and
(ListBox1.ItemIndex < ListBox1.Items.Count-1) and
(ListBox1.ItemIndex > -1) then
begin
ListBox1.ItemIndex:= ListBox1.ItemIndex+1;
PlayItem(ListBox1.ItemIndex);
end;
|
Добавил(а): Mikhail | Дата: 2013-06-09 | |
Большое спасибо Admin получилось
|
No results found.