Урок 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.
Отменить.