![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите, пожалуйста... [D7, XP]
Footballer © (2006-07-18 00:15:00)Здрасте, вы может помните мы с Homo Sapiensпишем audio-player и тут возникло ещё несколько вопросиков:
1) Как можно "открыть с помощью" сразу несколько файлов и по очереди их обработать;
2) Как можно выполнить сортировку в плэйлисте, например по алфавиту (может компонент есть такой);
3) Как можно сделать баланс (правая - левая колонка) Примечание:Использую компонент TBassPlayer;
4) Как можно выполнить поиск в плейлисте(вводишь часть имени, а тебе выдают список номеров строк, где этот отрывок присутствует);
5) Как можно узнать длину песенки, не открывая каждый раз файл, вот так:
for i:=0 to OpenDialog1.Files.Count-1 do
begin
Mediaplayer1.filename:=opendialog1.files.strings[i];
mediaplayer1.open;
time:=found_file_lenght; //Это такая функция
..............................
end;
Ну вот, в общем и всё, жду ответов, зарание спасибо!
Footballer (2006-07-25 19:50:00) [1]Код ещё не смотрел, но всё равно спасибо...
programania (2006-07-25 19:35:00) [2]>3) Как можно сделать баланс (правая - левая колонка) Примечание:Использую компонент TBassPlayer;
Вот из help к Bass:
BASS_ChannelSetAttributes(
DWORD handle,
int freq,
int volume,
int pan
);
handle The channel handle... a HCHANNEL, HMUSIC, HSTREAM, or CDCHANNEL.
freq The sample rate... 100 (min) - 100000 (max), 0 = original rate (when the channel was created), -1 = leave current.
volume The volume... 0 (silent) - 100 (max), -1 = leave current.
pan The panning position... -100 (left) - 100 (right), -101 = leave current.
например
BASS_ChannelSetAttributes(chan,-1,-100,pan);
Footballer (2006-07-25 18:37:00) [3]
> как всегда -- виновата многострадальная 17-я строка.
А в коде 16 строк... :-)
procedure TMainForm.createmenu;
var
reg:tregistry;
begin
reg:=tregistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('*\Shell\Open With Chuk && Gek Player',true);
reg.WriteString('','Open With Chuk && Gek Player');
reg.WriteString('','Open With Chuk && Gek Player');
reg.CloseKey;
reg.OpenKey('*\Shell\Open With Chuk && Gek Player\command',true);
reg.WriteString('','command');
reg.WriteString('',paramstr(0)+' "1%"');
reg.CloseKey;
reg.Free;
end;
Ketmar (2006-07-25 18:17:00) [4]>Footballer © (25.07.06 01:34) [50]
как всегда -- виновата многострадальная 17-я строка.
Footballer (2006-07-25 18:01:00) [5]Люди, ну серьёзно, никто больше помочь не может? :-(((
Footballer (2006-07-25 01:34:00) [6]Продолжаю ветвь... ответьте плиз на вопрос № 2: Как можно сделать баланс (правая - левая колонка) Примечание:Использую компонент TBassPlayer
Да, кстати с "shell extensions" мы вроде разобрались, но всё-таки возникла проблемка :(
Пункт в меню, всплывающее по нажатию правой кнопки мыши (кстати, как оно называется?) добавляется, но когда пытаешься нажать на него всплывают ошибки типа Invalid stream file (1)Шо це таке здесь происходит?
!_SM_! (2006-07-20 17:11:00) [7]Можно еще вот такую фиговину сделать:
function VerifyFile(const S: String): Boolean;
begin
//Здесь проверяй нужен этот файл или нет
Result:=True;
end;
......
FlNm:=PChar(FlNm);
if VerifyFile(FlNm) then AddFile(FlNm);
end;
.....
Ну это так для разнообразия.
!_SM_! (2006-07-20 17:05:00) [8]
> Footballer © (20.07.06 13:24) [47]
> Но кстати проблему с множественным "открыть с помощью"
> это не решает...
А ты сделай(добавь) свое меню типа "отрыть с помощью МОЕГО плеера".
Как добавить (меню) обсуждалось уже нираз.
А стандартно меню "Открыть с помощью..." не работает даже и у Worda. Выделяешь кучу файлов жмешь открыть с помощью... выбираешь Word, или любую другую прогу которая позволяет открывать много документов(файлов), и.... открывается один файл (который из выделенных был под мышой) ну т.е. на нем правый клик.
Footballer (2006-07-20 13:24:00) [9]
> !_SM_!
Огромаднейшее СПАСИБО
Я ТАК ДОЛГО пытался это сделать, и наконец нашёл у тебя!
Ещё раз спасибо! Теперь мой благодарный список выглядит так:
1) Ещё раз Marser за пост [1] (сортировка массива);
2) Огромное спасибо ArtemESC © за пост [16] (поиск);
3) Поблагодарю Kertman если он наконец объяснит, что такое"shell extensions" или какой-нибудь другой вариант решения первого вопроса :-)
4) Огромаднейшее СПАСИБО !_SM_! за пост [29] (перетаскивание файлов в плейлист, хотя я это даже и не просил ;-))
P.S. Но кстати проблему с множественным "открыть с помощью" это не решает...
Footballer (2006-07-20 12:25:00) [10]Тьфу ты... Я ж OnCrete не задействовал...
Ща попробуем...
!_SM_! (2006-07-20 12:16:00) [11]Сделал как? Создал новый проект. Вставил на голую форму ListBox1. Оставил имя ListBox1. Выделил код, который я написал в !_SM_! (19.07.06 18:06) [29], целиком от unit Unit1; до end. Скопировать. Выделить у себя в редакторе делфи в модуле формы весь текст, удалить его и вставить из буфера мой. Потом два раза щелкнуть по форме - чтобы задействовать событие OnCreate. Скомпилировать. Опять ничего не получилось?
А значит "ничего" и не должно получиться :(( Значит что-то нитак делаешь.
У меня все отлично получается. При старте проги если кидаешь на значек проги список (кучу выделенных) файлов, прога запустится и ListBoxe будет весь этот список, так-же если уже на открытую форму бросишь список файлов.
Может я чего не догоняю, того чего ты желаешь получить.....
Footballer (2006-07-20 01:36:00) [12]
> Что получилось?
Ничего...
А что должно получиться? Может я что-то нитак сделал...
!_SM_! (2006-07-20 01:18:00) [13]Пробовал мой код? Если нет, создай новый проект, добавь на форму ListBox
оставь имя ListBox1. Скомпилируй. Потом, хочешь, выделяй файлы в провднике и кидай на значок ехе файла, тоже в проводнике, который только что скомпилил. Или на уже загруженную форму брось выделенные файлы.
Что получилось?
Footballer (2006-07-20 00:57:00) [14]По-моему, вы пытаетесь делать, как Alx_ © (См.2).
Да, и что это за функция DragAcceptFiles и процедура TForm1.DropFiles?
!_SM_! (2006-07-20 00:42:00) [15]Я просто пример написал обработки файлов по очереди, а дальше сам чего хочешь с ними (файлами из спика) делай.
!_SM_! (2006-07-20 00:41:00) [16]
> Footballer © (20.07.06 00:22) [39]
> Куда?
>
> Footballer © (18.07.06 00:15)
> 1) Как можно "открыть с помощью" сразу несколько файлов и по очереди
> их обработать;
А куда надо?
Footballer (2006-07-20 00:22:00) [17]
> !_SM_! (19.07.06 18:06) [29]
> Про добавление файлов
Куда?
В плейлист из папок?
Или я не так понял?
Footballer (2006-07-20 00:16:00) [18]Да, кстати, мне кажется, я немного отвлёкся от основной темы
Хотел бы поблагодарить:
1) Ещё раз Marser за пост [1] (сортировка массива);
2) Огромное спасибо ArtemESC © за пост [16] (поиск);
3) Поблагодарю Kertman если он наконец объяснит, что такое"shell extensions" или какой-нибудь другой вариант решения первого вопроса :-)
А тем временем у меня осталось всего 3 вопроса:
1) Как можно "открыть с помощью" сразу несколько файлов и по очереди их обработать;
2) Как можно сделать баланс (правая - левая колонка) Примечание:Использую компонент TBassPlayer;
3) Как можно узнать длину песенки, не открывая каждый раз файл, вот так:
for i:=0 to OpenDialog1.Files.Count-1 do
begin
Mediaplayer1.filename:=opendialog1.files.strings[i];
mediaplayer1.open;
time:=found_file_lenght; //Это такая функция
..............................
end;
Зарание благодарю!
Footballer (2006-07-20 00:15:00) [19]Удалено модератором
Footballer (2006-07-20 00:15:00) [20]Удалено модератором