Разное
|
|
xaramamburu | Дата: Понедельник, 19.08.2013, 18:12 | Сообщение # 16 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Praying, ShellExecute( 0, 'open', 'explorer', PChar('/select, ' + Listbox1.Items[ListBox1.ItemIndex]), '', SW_NORMAL ); Создавайте PopupMenu и вешайте на кнопку данный код.)))
|
|
| |
Praying | Дата: Понедельник, 19.08.2013, 22:23 | Сообщение # 17 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Offline
| Спасибо))) Теперь стало намного удобнее искать местоположения треков, из огромных плейлистов))) Есть еще такой вопрос) Неоднократно гуглил, но четкого ответа для него не нашел... Как выводить название трека в заголовок формы, и в label у вас на сайте есть)) А вот как можно сделать бегущую строку с названием трека, в тот же label? Идущую справа <- налево, которая бы вытекала из краев. Например вот так: "livion.mp3:. .:M83 – Ob"
Сообщение отредактировал Praying - Понедельник, 19.08.2013, 22:24 |
|
| |
xaramamburu | Дата: Понедельник, 19.08.2013, 23:56 | Сообщение # 18 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Praying, Цитата Неоднократно гуглил, но четкого ответа для него не нашел... Плохо гуглили, например здесь:
http://www.delphisources.ru/forum/showthread.php?t=7875
http://www.programmersforum.ru/showthread.php?t=1046
http://www.delphisources.ru/pages/faq/base/run_string.html
Ну а дальше включайте мозги.))))
|
|
| |
Praying | Дата: Среда, 21.08.2013, 14:58 | Сообщение # 19 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Offline
| Спасибо)) В общем с бегущей строкой нам не по пути, нарушает концепцию)) Но если кому нужно делал так: В разделе procedure TForm_Player.Player; в месте где в label выводим названия трека дописал:
Label19.Caption:='.::'+ ExtractFileName(FileName)+ '::. ';
Кинул второй таймер, тк в первом слишком много всего... Х) Добавлено (21.08.2013, 14:58) --------------------------------------------- Есть вопрос) Мы в label выводим время трека в таком виде: Label16.Caption:=FormatDateTime('hh:mm:ss',ValDo); Часы:Минуты:Секунды Можно ли сделать так чтобы выводились только Минуты:Секунды ?
Сообщение отредактировал Praying - Среда, 21.08.2013, 14:38 |
|
| |
xaramamburu | Дата: Среда, 21.08.2013, 18:27 | Сообщение # 20 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Можно просто вырезать нужное функцией copy.
Label16.Caption:=copy(FormatDateTime('hh:mm:ss',ValDo),4,5);
|
|
| |
Praying | Дата: Суббота, 24.08.2013, 14:07 | Сообщение # 21 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Offline
| Спасибо огромное, за все ответы))))))
Добавлено (24.08.2013, 13:58) --------------------------------------------- Такой вопрос) Если нажать на Pause, а потом Play воспроизведение продолжится, а если на Stop, то никакой реакции=( Что нужно дописать чтоб, после нажатия Stop сбрасывалось? Коды ваши. Дописал проверку or mode=paused, но ругается... Добавлено (24.08.2013, 14:07) --------------------------------------------- Возник вопрос по горячим клавишам) Создал ActionList1, в нем создал события: Коды заимствованы и немного переделаны из ваших, все норм работают. Но вот кнопки Play, Stop, Pause, как их организовать?
Сообщение отредактировал Praying - Суббота, 24.08.2013, 14:09 |
|
| |
xaramamburu | Дата: Воскресенье, 25.08.2013, 16:37 | Сообщение # 22 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Цитата Дописал проверку or mode=paused, но ругается... Где вы изучали паскаль? Сложные условия нужно писать в круглых скобках.))) if (mode=play) or (mode=paused) then
Цитата Но вот кнопки Play, Stop, Pause, как их организовать? Аналогично. Создавайте Action событие и копируйте в него код соответствующей кнопки, а затем у кнопки в свойстве Action выберите это событие. Да, после этого событие OnClick у кнопки можно удалить, оно у вас теперь будет находится в ActionList.)))
|
|
| |
Praying | Дата: Понедельник, 26.08.2013, 11:09 | Сообщение # 23 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Offline
| Да просто результат немного не тот. Сейчас объясню. С помощью клавиш вперед, назад, в ListBox выбираю трек. Когда выбрал нажимаю Play, трек играет. Когда нажимаю Pause трек останавливается, на Stop не реагирует хотя все так же описано как и на клавишах (исправил скобки теперь все норм работает). Опять нажму Play, трек играет, выберу клавишами вперед, назад другой, нажму Play он не запускается пока не остановлю тот который уже играет кнопкой Stop. А нужно чтоб выбрав трек горячими клавишами вперед, назад он сразу переключался, без предварительной остановки. Как быть? Код с кнопок я и так вставлял. Если следовать вашим инструкциям, то тоже что и в Action становится и для кнопок, и те же косяки (то что я выше описал). А кнопки вперед, назад здесь работать должны по другому, так как и было в ваших уроках: при нажатии на них, песни сразу переключаются. Так что лучше я думаю пусть они будут описаны отдельно.
Сообщение отредактировал Praying - Понедельник, 26.08.2013, 11:11 |
|
| |
xaramamburu | Дата: Понедельник, 26.08.2013, 17:39 | Сообщение # 24 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| На кнопке Play за это отвечает строка, выделенная красным, в коде ниже:
procedure TForm_player.Button1Click(Sender: TObject); begin //Проверяем если воспроизведение уже идет то выходим if mode=play then exit ; //Запускаем процедуру проигрывания player; еnd;
Либо удалите ее или по вешайте на ActionList этот код без нее. Она нужна для того, чтоб песня, которая уже играет не сбрасывалась на начало при нажатии кнопки Play.)))
|
|
| |
Praying | Дата: Среда, 28.08.2013, 17:37 | Сообщение # 25 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Offline
| Еще раз спасибо, теперь все работает так как нужно
Добавлено (28.08.2013, 17:37) --------------------------------------------- Еще раз обращусь за советом) Пытаясь скомпоновать свой эквалайзер, столкнулся с тем что Label очень громоздки, даже если уменьшать формат (деления тоже убрал)... Решил вывести в подсказки (Hint), но невидно на какой позиции стоит ползунок. Захотелось сделать так же как в AIMP, там рядом с подписью можно наблюдать позицию. Вот в таком виде: 500Hz [-2,70 db] Значения db изменяются по мере движения ползунка. То-есть подсказка не исчезает, когда двигается ползунок. Возможно ли, и как это организовать?
Сообщение отредактировал Praying - Среда, 28.08.2013, 18:19 |
|
| |
xaramamburu | Дата: Четверг, 29.08.2013, 19:48 | Сообщение # 26 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Цитата Решил вывести в подсказки (Hint), но невидно на какой позиции стоит ползунок. Захотелось сделать так же как в AIMP, там рядом с подписью можно наблюдать позицию. Можно попробовать так:
procedure TForm_player.TrackBar3Change(Sender: TObject); begin ------------------------------------------- ------------------------------------------- TrackBar3.Hint:='80Hz '+'['+inttostr(15-TrackBar3.position)+']' Application.ActivateHint(Mouse.CursorPos); end;
Правда не могу сказать в каких единицах здесь задается усиление.)))
|
|
| |
Praying | Дата: Пятница, 30.08.2013, 20:59 | Сообщение # 27 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Offline
| Спасибо \О/ ))) Почти то, что нужно. В AIMP, Hint не исчезает, так сказать 'онлайн показывает'. Но я думаю что это не Hint, а какая нибудь панелька которая таскается за курсором, если судить по таким же задаваемым вопросам в инетах) Не стал заморачиваться точностью, чуть добавил, и получилось почти тоже что и хотел)))
procedure TForm_player.TrackBar3Change(Sender: TObject); begin //--------------------------------- ... //---------------------------------- TrackBar3.Hint:='80Hz '+'['+inttostr(15-TrackBar3.position)+'db'+']'; Application.ActivateHint(Mouse.CursorPos); Application.HintColor := clSkyBlue; Application.HintPause := 10; Application.HintHidePause := 5000; end;
Спасибо за помощь)
Сообщение отредактировал Praying - Пятница, 30.08.2013, 21:54 |
|
| |
Vlad | Дата: Воскресенье, 22.09.2013, 23:17 | Сообщение # 28 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| как сделать так, чтобы в плейлисте песни были пронумерованы?
|
|
| |
xaramamburu | Дата: Понедельник, 23.09.2013, 10:43 | Сообщение # 29 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Vlad, смотрите тему на форуме "Как работать с плейлистом в delphi на библиотеке BASS.DLL?" начиная с сообщения №69 http://basicsprog.ucoz.ru/forum/4-4-201-16-1341560865 и далее. Все это делается с помощью отрисовки в ListBox. Единственное что удалите из процедуры в этом сообщении строчку: TextOut(rect.right-50, rect.top, lentime(Listbox1.Items[index]));//для времени После того как разберетесь, что к чему можете вернуться к началу темы и добавить время, иконки и т.д. в плейлист.))))
|
|
| |
Vlad | Дата: Пятница, 27.09.2013, 23:31 | Сообщение # 30 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| первая песня начинается с нуля. можно сделать так, чтоб с 1? Добавлено (27.09.2013, 23:31) --------------------------------------------- первая песня начинается с нуля. можно сделать так, чтоб с 1?
|
|
| |
|