Суббота, 16.12.2017, 21:37
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Форум » Delphi » Создание mp3 плеера на Delphi » Плейлист и случайное воспроизведение песен
Плейлист и случайное воспроизведение песен
Filo$oFДата: Воскресенье, 01.07.2012, 20:52 | Сообщение # 16
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 2
Статус: Offline
BM_GORA

Обрабатывайте событие OnMouseDown в listbox.

Примерно так:
Code

procedure TForm_player.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
var
   N: Integer;
begin
   N := ListBox1.ItemAtPos(Point(X, Y), True);
   if N >= 0 then
     ListBox1.ItemIndex := N;
end;


Правда, если не один из треков не был выделен до этого левой кнопкой мыши, то при нажатии правой строка не выделится, но меню откроется именно для той строки на которой была нажата кнопка. Думаю понятно.
 
BM_GORAДата: Четверг, 05.07.2012, 13:15 | Сообщение # 17
Лейтенант
Группа: Пользователи
Сообщений: 44
Репутация: 0
Статус: Offline
спс, все работает)), насчет выделения, у меня так сказать по умолчанию выделяется первый трек, и сделать так чтоб не один трек не был выделен нельзя ))
 
VladДата: Воскресенье, 22.09.2013, 23:31 | Сообщение # 18
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
как воспроизвести песню, кликнув на нее в плейлисте дважды?
 
xaramamburuДата: Понедельник, 23.09.2013, 10:28 | Сообщение # 19
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Vlad
Странный вопрос.((( Смотрите урок 1.2 и исходники к нему, все это там реализовано.)))
 
VladДата: Понедельник, 23.09.2013, 21:36 | Сообщение # 20
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
xaramamburu
Дело в том что, я сделал все, как в инструкции, без единой ошибки. Запустил - даблклик не работает sad
 
xaramamburuДата: Понедельник, 23.09.2013, 23:00 | Сообщение # 21
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Vlad
Смотрите исходник, если в нем работает, то это значит вы где то на мудрили. Пока с этим вроде проблем не было.)))
 
VladДата: Понедельник, 23.09.2013, 23:06 | Сообщение # 22
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
xaramamburu, смотрел. работает. все сделал точь-в-точь как на исходнике, но все равно не работает angry
 
xaramamburuДата: Понедельник, 23.09.2013, 23:11 | Сообщение # 23
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Vlad
В исходнике у вас работает или нет?
 
VladДата: Понедельник, 23.09.2013, 23:16 | Сообщение # 24
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
когда на форме дважды кликнешь по листбоксу, то вызывается процедура листбокс-клик. а как вызвать процедуру листбокс-даблклик?????

Добавлено (23.09.2013, 23:14)
---------------------------------------------
работает

Добавлено (23.09.2013, 23:16)
---------------------------------------------
добавил код на процедуру листбокс-клик, воспроизводится по одинарному нажатию. а если я добавлю его на дабл-клик - не работает

 
xaramamburuДата: Понедельник, 23.09.2013, 23:20 | Сообщение # 25
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
В инспекторе объектов вкладка Events в ней событие OnDblClick.)))
 
VladДата: Понедельник, 23.09.2013, 23:24 | Сообщение # 26
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
работает :up::ok:
 
Black-LotusДата: Вторник, 22.10.2013, 20:57 | Сообщение # 27
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Offline
Цитата Filo$;oF;66
Hanigan, Я реализовал это так:
Кидаем на форму listbox и PopupMenu
И FormCreate пишем:

Code
procedure TForm1.FormCreate(Sender: TObject);
begin
listbox1.PopupMenu:=popupmenu1;
end;

Создаём в меню пункт "Удалить"
и в обработчике события N1Click пишем:
Code
procedure TForm1.N1Click(Sender: TObject);
begin
//удаляем активный элемент
listbox1.Items.Delete(listbox1.ItemIndex);
end;

Здесь показан пример, когда PopupMenu вызывается если выбрана строка Listbox-a.
Что бы PopupMenu появилось в любом месте listbox-a, то поставьте свойстве listbox 'popup'
Сделал таким же макаром давно правда но не суть только не стал прописывать лишний код с приравниванием "поп меню" но я еще добавил в своем плеере в первый же день когда собрал уже готовую модель добавил туда плей лист формата blpl - созданый самим,
может кому пригодится подобная фишка, удалял песню и сразу же делал сохранение в фаил.
Адресс плей листа брался из ini файла в переменную "plfile" а потом уже сохранял его обратно но с изменениями.......
вот такой листинг кода

Код
procedure TForm1.N1Click(Sender: TObject);
begin
//удаляем активный элемент
listbox1.Items.Delete(listbox1.ItemIndex);
listbox1.items.savetofile(plfile);
end;


загружал уже по другому т.к. открыл для себя волшебные свойства ID3Tags  но тех кто пока этим не заморочился
загружал так listbox1.items.loadfromfile(plfile);
Может кому пригодится я не знаю если нет то извините что потралтил ваше время


Сообщение отредактировал Black-Lotus - Вторник, 22.10.2013, 20:58
 
Форум » Delphi » Создание mp3 плеера на Delphi » Плейлист и случайное воспроизведение песен
Страница 2 из 2«12
Поиск:


Copyright MyCorp © 2017Конструктор сайтов - uCoz