![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как интегрировать программу с оболочкой Windows? [D7, WinXP]
Sidex © (2005-08-24 16:38:00)Помогите, кто чем может. Недавно написал медиа-плеер, хочу немного доработать. Нужно сделать следующие вещи:
1. Если в проводнике выбрать несколько медиа-файлов и выбрать пункт "Открыть с помощью" - "Project.exe", то должна запуститься программа и одновременно сформировться плейлист на основе выбранных файлов. Пробовал пользоваться функцией ParamStr, но она возвращает только адрес последнего выбранного файла, а нужно обрабатывать ВСЕ.
2. Если выбелить несколько файлов и бросить их на окно с плеером, то они должны добавиться в плейлист. Здесь опять-таки мне нужны только полные адреса файлов, но как их получить?
Заранее спасибо.
Antonn (2005-08-26 14:51:00) [1]Leonid Troyanovsky © (26.08.05 14:08) [11]
ой, я в [10] по ошибке адрессата перепутал:)
Leonid Troyanovsky (2005-08-26 14:08:00) [2]
> Antonn © (26.08.05 13:51) [10]
> Leonid Troyanovsky © (26.08.05 13:35) [9]
> procedure WMDropFiles(var Message: TWMDropFiles); message
> WM_DROPFILES;
Насколько я понял, непонятым остался другой пример, с DDE open.
--
Regards, LVT.
Antonn (2005-08-26 13:51:00) [3]Leonid Troyanovsky © (26.08.05 13:35) [9]
2. Если выбелить несколько файлов и бросить их на окно с плеером, то они должны добавиться в плейлист. Здесь опять-таки мне нужны только полные адреса файлов, но как их получить?
private
procedureWMDropFiles( varMessage: TWMDropFiles); message WM_DROPFILES;
protected
procedureCreateParams( varParams: TCreateParams); override;
implementation
procedureTF_PlayList.CreateParams( varParams: TCreateParams);
begin
inherited
CreateParams(Params);
Params.ExStyle := Params.ExStyle orWS_EX_ACCEPTFILES;
end;
procedureTF_PlayList.WMDropFiles( varMessage: TWMDropFiles);
varaFile: array[0..255] ofChar;
FilesCount,N : Integer;
begin
inherited;
FilesCount := DragQueryFile(Message.drop, $FFFFFFFF, nil, 0);
begin
forN := 0 toFilesCount - 1 do begin
DragQueryFile(Message.drop, N, aFile, 256);
//тут добавляем, в aFile имеем имя файла/путь
end;
end;
DragFinish(Message.Drop);
end;
Leonid Troyanovsky (2005-08-26 13:35:00) [4]
> Sidex (26.08.05 13:26) [8]
> ничего не понял. Хоть бы одни комментарий на русском написали.
Для Michel английский, IMHO, тоже не родной, он из Германии.
Поэтому, и пишет он очень даже понятно даже для китайца.
Кроме того, большая часть письма, вообще, на Delphi.
И чего не понято?
--
Regards, LVT
Sidex (2005-08-26 13:26:00) [5]Начсет http://groups.google.com/group/fido7.ru.delphi.chainik/msg/cc85a749fdfddcb7спасибо, все работает (правда там вместо NumFiles:=DragQueryFile(Msg.Drop, -1, nil, 0) нужно писать NumFiles:=DragQueryFile(Msg.Drop, DWORD(-1), nil, 0), а то не пашет.
По поводу http://groups.google.com/group/fido7.ru.delphi.chainik/msg/278f89887ab26b31ничего не понял. Хоть бы одни комментарий на русском написали.
Чапаев (2005-08-25 12:54:00) [6]Гугли, шмугли...
"C:\Program Files\Borland\Delphi7\Demos\ActiveX\ShellExt\"
Leonid Troyanovsky (2005-08-25 12:53:00) [7]
> Leonid Troyanovsky © (25.08.05 12:50) [4]
И, скажем,
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/cc85a749fdfddcb7
--
Regards, LVT.
Digitman (2005-08-25 12:53:00) [8]
> Sidex (25.08.05 12:45) [3]
гуглить умеешь ?
http://www.google.ru/search?hl=ru&q=Delphi+IShellFolder&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
Leonid Troyanovsky (2005-08-25 12:50:00) [9]
> Sidex (25.08.05 12:45) [3]
> Что, никто не знает? Дайте хоть маленький примерчик.
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/278f89887ab26b31
--
Regards, LVT.
Sidex (2005-08-25 12:45:00) [10]Что, никто не знает? Дайте хоть маленький примерчик.
Sidex (2005-08-24 17:08:00) [11]А подробнее?
Polevi (2005-08-24 16:42:00) [12]IShellFolder