Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 1
Всего онлайн: 1
Зарегистрировано юзеров: 6358
Комментариев на сайте: 645
Новый юзер: Realtyvaday



Последние комментарии
c
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
GZip псевдоархив, на мой вопрос тоже не отвечают, как распаковать отдельные файлы/папки...
Pingitrus прокомментировал "Урок 71 - Работа с сжатыми файлами":
Есть еще кто нибудь живой на этом сайте, кто сможет помочь? Так то все работает, zip и rar распаковывает, но у меня есть файл dat который сжат GZip, почему то его не удается распаковать или так не получится так как этот файл не является архивом или является?)) пишет ошибку что неверная функция



Мы в соцсетях
c
Delphi
Урок 44 - Пишем MediaPlayer, часть(4/7)

   Продолжаем насиловать библиотеку Bass и этом уроке мы поработаем над интерфейсом и добавим плей-лист.

   Для начала изменим интерфейс, для этого вытащим 3 компонента TPanel, сразу свойство Caption у них очищаем, у первой и второй панели свойство Align выставляем на alTop,а третью пока не трогаем. Теперь выделяем все 4 кнопки, кликаем правой кнопкой мыши и в открывшемся контекстном меню выбираем Edit->Cut, выделяем первую панель и опять же кликаем правой кнопкой мыши: Edit->Paste. Таким образом мы переместили кнопки внутрь первой панели, также нужно сделать и с остальными компонентами, у вас должно получится вот так:

Внешний вид


   Далее добавим еще один TScrollBar на вторую панель, это будет громкость воспроизводимого звука. Свойство Align у третьей панели сделаем alClient и панель займет все свободное место, в нее мы добавим 2 компонента TListBox вот таким образом:

Внешний вид


   В первом ListBox'е будут только имена файлов, а второй будет скрыт от пользователя, в нем будут полные пути до этих файлов, это сделано для удобства и понимания. Также добавим 2 кнопки в оставшееся свободно место под плей-листом:

Внешний вид


   Ну все с визуальным оформлением закончили теперь дело за кодом. Первое что нам надо сделать, это процедуру добавления треков в плей-лист. После ключевого слова private объявим процедуру:
  private
    { Private declarations }
    procedure AddFiles(filename: string);
   Нажимаем комбинацию клавиш Ctrl+Shift+C и в готовом шаблоне пишем код:
procedure TForm1.AddFiles(filename: string);
begin
	ListBox2.Items.Add(FileName);  // Добавляем путь до файла во 2 лист
	ListBox1.Items.Add(ExtractFilename(fileName)); // Добавляем имя файла в 1 лист

	if ListBox1.ItemIndex=-1 then  // Если мы добавляем первый файл то
	ListBox1.ItemIndex:=Listbox1.Items.Count-1; // устанавливаем фокус на последний элемент
end;
   Процедура готова, её нужно откуда-то вызывать, делать мы это будет при нажатии на кнопку "+", создаем обработчик OnClick:
procedure TForm1.AddFiles(filename: string);
begin
	if OpenDialog1.Execute = false then exit; // Если файл не выбран то выходим
	AddFiles(OpenDialog1.FileName); // Вызываем нашу процедуру добавления файла и передаем туда путь
end;


Внешний вид


   Вот как это работает.

   Теперь нужно также написать процедуру проигрывания выбранного файла. Также после ключевого слова private пишем:
  private
    { Private declarations }
    procedure AddFiles(filename: string);
	procedure PlayItem(item: integer); // Вот она
   Нажимаем волшебную комбинацию и пишем в создавшемся шаблоне:
	if item < 0 then exit; // Если выбран несуществующий элемент то выходим
	if stream <> 0 then // Если поток уже существует то освобождаем его 
		Bass_StreamFree(stream); // чтобы не было наложения звуков

	stream:= Bass_streamCreateFile(false, PChar(ListBox2.Items.Strings[item]),0,0,0); // Открываем файл
	
	if stream = 0 then // Если файл не загрузился
		ShowMessage('Ошибка файл не загружен!') // Выводим ошибку
	else
	begin
		Panel1.Caption:=ExtractFileName(OpenDialog1.FileName); // Выводим имя файла
		ScrollBar1.Min:=0; // Устанавливаем минимальную позицию
		ScrollBar1.Max:=Bass_ChannelGetLength(stream,0)-1; // Максимальную
		ScrollBar1.Position:=0; // Обнуляем ScrollBar

		Bass_ChannelPlay(stream, false); // Играем трек
	end;
   Теперь старый обработчик события OnClick на кнопке "Играть" можно удалить и заменить на этот:
	if Bass_ChannelisActive(stream)= Bass_Active_Paused then // Если поток в состоянии паузы то
		BASS_channelPlay(stream,false) // Продолжаем играть
	else // Иначе
		PlayItem(ListBox1.ItemIndex); //Играем файл заного
 
   Ну вот и все, в следующем уроке мы научимся удалять файлы, изменять громкость и другое.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 29 Мая 2013
Просмотров: 6710

Урок 43 - Пишем MediaPlayer, часть(3/7) Урок 45 - Пишем MediaPlayer, часть(5/7)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): amok-dima [Новичок] Дата: 2014-11-24
Процедура готова, её нужно откуда-то вызывать, делать мы это будет при нажатии на кнопку "+", создаем обработчик OnClick: procedure TForm1.AddFiles(filename: string); begin if OpenDialog1.Execute = false then exit; // Если файл не выбран то выходим AddFiles(OpenDialog1.FileName); // Вызываем нашу процедуру добавления файла и передаем туда путь end; Здесь не большая ошибка, процедура уже будет называться не AddFiles а TForm1.Button5.Clikc, и думаю что нужно исправить код и в первой кнопке с надписью "Открыть", так как при нажатие данной кнопки, названия трека будет передаваться на Panel1, но при этом при нажатие кнопки "Играть" ничего не происходит.