Пятница, 19.04.2024, 11:34
Приветствую Вас Гость

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

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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Форум » Delphi » Создание mp3 плеера на Delphi » Установочный файл + ассоциирование файлов
Установочный файл + ассоциирование файлов
xaramamburuДата: Воскресенье, 08.07.2012, 19:48 | Сообщение # 31
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Filo$oF,
Вот http://basicsprog.ucoz.ru/uroki_delphi/multimedia/urok1_4/mp3.zip добавил к тому проекту, который я уже выкладывал с динамическими вкладками возможность открывать mp3 при запуске. Вроде все работает и сохраняет в ini файл. Хотя я сильно над ней не издевался. smile
 
Filo$oFДата: Понедельник, 09.07.2012, 08:23 | Сообщение # 32
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 2
Статус: Offline
xaramamburu,
Спасибо, но я понял в чём у меня проблема. Я вывожу в Form2 данные о треке - теги. Да ко всему ещё и считываю коверарт. Всё это происходит в процедуре player. Видимо, программа пытается вывести данные в label'ы второй формы формы когда они ещё не созданы.
 
BM_GORAДата: Вторник, 10.07.2012, 16:50 | Сообщение # 33
Лейтенант
Группа: Пользователи
Сообщений: 44
Репутация: 0
Статус: Offline
Пытался сделать запуск песен из проводника, делаю делаю, и тут надо открыть проэкт с форматом dpr, открыл путем File->Open->GorPlayer.dpr
Начинаю вставлять код и тут сразу же ошибки, ну я на них забил, и доделал до конца, в общем при запуске вот что выдает :

[DCC Error] mp3.pas(8): F2092 Program or unit 'mp3' recursively uses itself

и красным подсвечивается вот эта строчка:

mp3 in 'mp3.pas' {Form_player};

и еще, чет я непойму в чем разница между dpr и dproj, они же совершенно одинаковые, то что я написал в dpr отображается в dproj и через dproj можно править dpr и наоборот.

Добавлено (10.07.2012, 16:50)
---------------------------------------------
помогите плиззз ))

Сообщение отредактировал BM_GORA - Понедельник, 09.07.2012, 12:48
 
xaramamburuДата: Вторник, 10.07.2012, 22:40 | Сообщение # 34
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
BM_GORA,
Присылайте исходники проекта на почту. Время будет, посмотрю. А так сложно что то сказать. smile
 
BM_GORAДата: Среда, 11.07.2012, 00:12 | Сообщение # 35
Лейтенант
Группа: Пользователи
Сообщений: 44
Репутация: 0
Статус: Offline
ок, отправил ))
 
Filo$oFДата: Среда, 11.07.2012, 19:12 | Сообщение # 36
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 2
Статус: Offline
xaramamburu
А вы не знаете, как сделать ассоциацию через реестр?
Я вроде нашёл почитал, но у меня не работает. Да и вообще выдаёт порой ошибку связанную с comctl32.dll.

Code

procedure Associate;
var s:string;
begin
   Reg:=TRegistry.Create; // создаем
   Reg.RootKey := HKEY_CLASSES_ROOT; // указываем корневую ветку
   
   Reg.OpenKey('.mp3\OpenWithProgids\', true);
   Reg.WriteString('TestApplication.rtf', '');
   
   Reg.OpenKey('\SiMP.exe\DefaultIcon\', true);
   s:=Application.ExeName+',0';
   Reg.WriteString('', s);
   
   Reg.OpenKey('\SiMP.exe\Shell\Open\', true);
   Reg.WriteString('', 'Открыть в TestApplication');
   
   Reg.OpenKey('command\', true);
   s:='"'+Application.ExeName+'" "%1"';
   Reg.WriteString('', s);
   
   Reg.Free;
    
   SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
 
xaramamburuДата: Четверг, 12.07.2012, 11:45 | Сообщение # 37
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Filo$oF,
Попробуй так:
Code
procedure Associate;
var s:string;
begin
   Reg:=TRegistry.Create; // создаем
   Reg.RootKey := HKEY_CURRENT_USER; // указываем корневую ветку

   Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\DefaultIcon', true);
   s:=Application.ExeName+',0';
   Reg.WriteString('', s);

   Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\Shell\Open', true);
   Reg.WriteString('', 'Открыть в mp3player');

   Reg.OpenKey('command\', true);
   s:='"'+Application.ExeName+'" "%1"';
   Reg.WriteString('', s);

   Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3\UserChoice', true);
   Reg.WriteString('ProgId', 'Applications\TestApplication.exe');

   Reg.Free;

   SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;

procedure DeleteAssociate;
begin
   Reg:=TRegistry.Create;
   Reg.RootKey := HKEY_CURRENT_USER;

   reg.DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3');
   reg.DeleteKey('\Software\Classes\Applications\TestApplication.exe');

   Reg.Free;

   SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
smile
 
BM_GORAДата: Воскресенье, 15.07.2012, 11:59 | Сообщение # 38
Лейтенант
Группа: Пользователи
Сообщений: 44
Репутация: 0
Статус: Offline
Quote (xaramamburu)
procedure Associate;
var s:string;
begin
Reg:=TRegistry.Create; // создаем
Reg.RootKey := HKEY_CURRENT_USER; // указываем корневую ветку

Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\DefaultIcon', true);
s:=Application.ExeName+',0';
Reg.WriteString('', s);

Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\Shell\Open', true);
Reg.WriteString('', 'Открыть в mp3player');

Reg.OpenKey('command\', true);
s:='"'+Application.ExeName+'" "%1"';
Reg.WriteString('', s);

Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3\UserChoice', true);
Reg.WriteString('ProgId', 'Applications\TestApplication.exe');

Reg.Free;

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;

procedure DeleteAssociate;
begin
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;

reg.DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3');
reg.DeleteKey('\Software\Classes\Applications\TestApplication.exe');

Reg.Free;

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;


этот способ лучше чем предыдущий ? и не будет ли такого как с таймером ?
 
xaramamburuДата: Воскресенье, 15.07.2012, 21:29 | Сообщение # 39
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
BM_GORA,
Чем вам не нравится предыдущий способ, если вы не можете его настроить под свои нужды это не значит, что он не имеет право на существование. Тем более, что другого способа еще никто не предложил. А этот кусок программы позволяет сделать ассоциацию mp3 файлов с вашей программой прямо из плеера, а не через свойства файла.))))))))
 
BM_GORAДата: Четверг, 19.07.2012, 16:54 | Сообщение # 40
Лейтенант
Группа: Пользователи
Сообщений: 44
Репутация: 0
Статус: Offline
Quote (xaramamburu)
Чем вам не нравится предыдущий способ

тем что там марока с таймером

Добавлено (19.07.2012, 16:54)
---------------------------------------------
Quote (xaramamburu)
это не значит, что он не имеет право на существование

а я ничего и не говорю, пусть существует, просто он муторный, какой то, полюбому есть какой то способ в котором допустим не нужен таймер, ну и т.д.


Сообщение отредактировал BM_GORA - Четверг, 19.07.2012, 16:55
 
Саша8033Дата: Воскресенье, 11.11.2012, 22:23 | Сообщение # 41
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Offline
CopyDataStruct : TCopyDataStruct; У меня делфи ругается вот на эту строчку =(
 
xaramamburuДата: Воскресенье, 11.11.2012, 22:35 | Сообщение # 42
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Саша8033,
Посмотрите прописано ли у вас:
uses Forms, Windows
 
Форум » Delphi » Создание mp3 плеера на Delphi » Установочный файл + ассоциирование файлов
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:


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