Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 05.12.2010, 21:26
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
Вопрос

[quote=UFO 007]
Цитата:
к сожалению s одинаково коряво передаёт винампу путь к плэйлисту как WinExec-у и ShellExecut-у, так и в данном случае. Так что спасибо за помощь, но воз и ныне там - придётся изобретать другой лисапед.
P.S. А случаем ни у кого нет познаний пообширней вэтом направлении?
И вот чо в инэте накопал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  GetPlaylist: TWinampPlaylist;
begin
  winexec('winamp\winamp.exe', sw_show);
  GetPlaylist.Load('c:\Маленький Принц.m3u');// For Test
end;
TWinampPlaylist расписывается в прикреплённом файле winamp_sdk_0.9.rar. Ясное дело, что настоящему спецу - 5 мин полистать исходники и он поймёт где здесь собака порылась. У меня же ситуация следующая: Delphi после GetPlaylist\точка великодушно предложила целый букет методов и свойств, описаных в классе TWinampPlaylist, откуда я выбрал Load, Delphi сама поставила скобки и подсказку: Const:String. Вроде бы всё пучком, но после запуска проекта, при наж на Button1 получаю - exeption class EAccessViolation .... ...Write of Adress XXYYZZZ. Мои подозрения следующие: при запуске dprов из архива Delphi долго ругалась - то *.dcu не найдено, то *.pas не хватает и поэтому, наверное, криво слепились dll-ки, кот я подселил и к Винампу в Плагинсы, и в \Систем32. Вобщем - кто-нибудь, подскажите как с етим делом правильно бороться.
Заранее благодарен

З.Ы. Насчёт Авторских Прав - писано: Slava Antonov (c) 2004, взято с http://deadbeef.narod.ru/work/winampzone
Вложения
Тип файла: rar winamp_sdk_0.9.rar (32.1 Кбайт, 0 просмотров)

Последний раз редактировалось UFO 007, 05.12.2010 в 21:35.
Ответить с цитированием
  #17  
Старый 07.12.2010, 20:40
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
Вопрос

Цитата:
Сообщение от UFO 007
..., криво слепились dll-ки, кот я подселил и к Винампу в Плагинсы, и в \Систем32...
А мож их надо в одну из папок Borland\Delphi положить? И вообще - что такое SDK (вродь как и на С++ бывает), для чего нужно, как работает(можно в двух-трёх словах) и как с энтим делом правильно бороться(а вот тут поподробней плз)?
Заранее благодарен
Ответить с цитированием
  #18  
Старый 08.12.2010, 19:42
Аватар для notricky
notricky notricky вне форума
Прохожий
 
Регистрация: 09.07.2008
Сообщения: 13
Репутация: 10
По умолчанию

[quote=UFO 007]
Цитата:
Сообщение от UFO 007
И вот чо в инэте накопал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  GetPlaylist: TWinampPlaylist;
begin
  winexec('winamp\winamp.exe', sw_show);
  GetPlaylist.Load('c:\Маленький Принц.m3u');// For Test
end;
TWinampPlaylist расписывается в прикреплённом файле winamp_sdk_0.9.rar. Ясное дело, что настоящему спецу - 5 мин полистать исходники и он поймёт где здесь собака порылась. У меня же ситуация следующая: Delphi после GetPlaylist\точка великодушно предложила целый букет методов и свойств, описаных в классе TWinampPlaylist, откуда я выбрал Load, Delphi сама поставила скобки и подсказку: Const:String. Вроде бы всё пучком, но после запуска проекта, при наж на Button1 получаю - exeption class EAccessViolation .... ...Write of Adress XXYYZZZ. Мои подозрения следующие: при запуске dprов из архива Delphi долго ругалась - то *.dcu не найдено, то *.pas не хватает и поэтому, наверное, криво слепились dll-ки, кот я подселил и к Винампу в Плагинсы, и в \Систем32. Вобщем - кто-нибудь, подскажите как с етим делом правильно бороться.
Заранее благодарен

З.Ы. Насчёт Авторских Прав - писано: Slava Antonov (c) 2004, взято с http://deadbeef.narod.ru/work/winampzone
Быть может после begin сразу написать
Код:
....begin
   GetPlaylist := TWinampPlaylist.Create;
?
Ответить с цитированием
  #19  
Старый 07.01.2011, 13:24
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
По умолчанию

1234567890

Последний раз редактировалось UFO 007, 07.01.2011 в 13:39.
Ответить с цитированием
  #20  
Старый 07.01.2011, 13:28
UFO 007 UFO 007 вне форума
Новичок
 
Регистрация: 28.11.2010
Сообщения: 54
Репутация: 10
По умолчанию Re: Как запустить приложение из программы и не зависить от него

[quote=notricky]
Цитата:
Сообщение от UFO 007
Быть может после begin сразу написать
Код:
....begin
   GetPlaylist := TWinampPlaylist.Create;
?
К сожалению эту идею проишлось умертвить т.к. после Create второй строкой:
Код:
   TWinampPlaylist.Destroy;
- зависание... Но успешно воплотилась другая идея:
Код:
....If MyPlayerButton.Checked then ...
изменяем значение ключа реестра, отвечающего за m3u или mp3 на путь к Винампу с моей болванки и тогда ShellExecute отлично передаёт ему путь к плэйлисту: CurDir + ArtistBox + AlbumBox. Теперь проблема след.: чтобы нати папку Music и выкапывать оттуда значения для вышеупомянутых КомбоБоксов припахал первое попавшее под руку средство - DirectoryListBox1 (более подходящего метода вродь как не нашёл), но пока прога откатывалась на HDD - всё было ВэриКул, а вот как только итоговый вариант был записан на болванку .... Ни *.mp3 в TreeView1 не видно, фото артиста в Image1, ни ... потому что КомбоБоксы возвращают ' '. Ну, думаю Ща...
Короче - вот:
Код:
Procedure BoxChange (Box: TComboBox; StartDir: string; Level_: integer);
var s: string;
begin
  form1.DirectoryListBox1.Directory:= StartDir;
  repeat
    s:= form1.DirectoryListBox1.GetItemPath(Level_);
    if pos(StartDir, s)>0 then
    Delete(s, Pos(StartDir, s), length(StartDir));
    if s <> '' then Box.Items.Add(s);
    inc (Level_);
  until s = '';
end;

и если подавать ей Level_ := 0, то содержимое ArtistBox'а будет выглядет так:
C:\
C:\Program Files
C:\Program Files\Borland
C:\Program Files\Borland\Delphi7
C:\Program Files\Borland\Delphi7\Projects
C:\Program Files\Borland\Delphi7\Projects\Bpl
C:\Program Files\Borland\Delphi7\Projects\Music
а уж потом можно найти и Диану, и Маленького Принца с вложенными туда альбомами. Так вот чтобы исключить этот "мусор" - надо рассчитать Level_ :
Код:
  Level:= 0;
  i:= Level;
  repeat
  s:= DirectoryListBox1.GetItemPath(i);
memo2.Lines.Add('s= ' + s);
  inc (i);
  until  Pos ('Music', s) >0;
  CurDir:= s + '\';
  StrLCopy (buf, PChar(s), max_path);
  for i := 0 to SizeOf(buf)do
  if buf[i] = '\' then inc (Level);
memo2.Lines.Add('Level= ' + inttostr(Level));
memo2.Lines.Add('CurDir= ' + CurDir);
  BoxChange (ArtistBox, CurDir, Level +1); // ниже папки Music
  ArtistBox.ItemIndex := 0;
  artist:= CurDir + ArtistBox.Items[ArtistBox.ItemIndex]+'\'; 
memo2.Lines.Add('artist= ' + artist);  
Вродь как логично, но на ВиртуалСД (или только на реальной болванке всё будет Тип-Топ? - не хотелос бы лишний раз трепать DVDписюк) этот код показывает:
s= k:\
s= k:\Music
Level= 4
CurDir= k:\Music\
artist= k:\Music\\
album= \
и всё - пусто (а на винте - всё пашет О'К: видно все фото- и биографии, проигрыватся m3u и mp3 и Каролины, и Комиссара{окромя Дианы...}, системным и моим плэйером). Кто нить знает в чём собака порылась? и как это дело объегорить?
Заранее благодарен

Последний раз редактировалось UFO 007, 07.01.2011 в 15:54.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:15.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025