Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 17:34   #1
annum
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 10
По умолчанию Вшиваем ресурсы

Добрый день всем пользователям.

Вообщем такая проблема,прошу помощи у знатоков.
Есть программа,есть форма,на форме десять кнопок,на компьютере 10 аудио записей. Как сделать так,чтоб при нажатии на кнопку 1 играл трек 1, и так далее? Просто так закинуть файл в директорию с программой и прописать ссылкой не катит,файлы нужно вшить,чтоб никто никогда не смог до них добраться. Нужно сделать просто "программа.exe" , а в ней уже треки чтоб были зашиты.Слышал как-то ресурами это делается,но у меня уровень не такой уж и большой,помогите)
если была подобная тема,извиняюсь.Скиньте ссылку

пожалуйста,помогите.Очень нужно,скоро 8 марта,девушка нужно подарок дописать

Последний раз редактировалось annum; 25.02.2011 в 17:39.
annum вне форума Ответить с цитированием
Старый 25.02.2011, 17:56   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Ну значится всё просто, создаём файл, musuc.rc:
В него примерно следующее.
Код:
Song0  WAVE "E:\music\mysong0.wav"
Song0  WAVE "E:\music\mysong1.wav"
Song0  WAVE "E:\music\mysong2.wav"
SongN  WAVE "E:\music\mysongN.wav"
Song10  WAVE "E:\music\mysong10.wav"
Все звуки должны быть перекодированы в wav формат.
Ну можно и mp3 но там всё чуть сложнее=)

собираем RES файл.

в программе, в DPR файле:
Код:
{$R Music.res}
Далее, вот такая процедурка:
Код:
procedure PlayWavFromRes(WavFile:string);
var
  ResHandle: THandle;
  SongRes:Pchar;
  ResPtr: PByte;
begin
try
  ResHandle := FindResource(hInstance, PChar(WavFile), 'WAVE');//ищем в ресурсе 
  SongRes := LoadResource(hInstance, ResHandle);//Загружаем
  if SongRes <> 0 then
  begin
  ResPtr := LockResource(SongRes); //Обьявляем что первыми сели на толчёк
  //Нужно подключить модуль MMSystem
  SndPlaySound(ResPtr, snd_ASync or snd_Memory) ;//играем звук
UnlockResource(SongRes);//Встаём с толчка
  end;
finally
FreeResource(SongRes);//Сваливаем из сартира
 end;
end;
в программе:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
PlayWavFromRes('song5'); //Воспроизводим звук Song5 из ресурса=) 
end;
Человек_Борща вне форума Ответить с цитированием
Старый 25.02.2011, 18:17   #3
annum
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ну значится всё просто, создаём файл, musuc.rc:
В него примерно следующее.
Код:
Song0  WAVE "E:\music\mysong0.wav"
Song0  WAVE "E:\music\mysong1.wav"
Song0  WAVE "E:\music\mysong2.wav"
SongN  WAVE "E:\music\mysongN.wav"
Song10  WAVE "E:\music\mysong10.wav"
Все звуки должны быть перекодированы в wav формат.
Ну можно и mp3 но там всё чуть сложнее=)

собираем RES файл.

в программе, в DPR файле:
Код:
{$R Music.res}
Далее, вот такая процедурка:
Код:
procedure PlayWavFromRes(WavFile:string);
var
  ResHandle: THandle;
  SongRes:Pchar;
  ResPtr: PByte;
begin
try
  ResHandle := FindResource(hInstance, PChar(WavFile), 'WAVE');//ищем в ресурсе 
  SongRes := LoadResource(hInstance, ResHandle);//Загружаем
  if SongRes <> 0 then
  begin
  ResPtr := LockResource(SongRes); //Обьявляем что первыми сели на толчёк
  //Нужно подключить модуль MMSystem
  SndPlaySound(ResPtr, snd_ASync or snd_Memory) ;//играем звук
UnlockResource(SongRes);//Встаём с толчка
  end;
finally
FreeResource(SongRes);//Сваливаем из сартира
 end;
end;
в программе:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
PlayWavFromRes('song5'); //Воспроизводим звук Song5 из ресурса=) 
end;
делаю всё как ты говоришь,создал файл,закинул музыку,добавляю в файл dpr куча ошибок вылазиет
[Warning] Project1.dpr(9): File not found: 'Music.res'
[Error] Project1.dpr(18): Undeclared identifier: 'FindResource'
[Error] Project1.dpr(19): Undeclared identifier: 'LoadResource'
[Error] Project1.dpr(20): Operator not applicable to this operand type
[Error] Project1.dpr(22): Undeclared identifier: 'LockResource'
[Error] Project1.dpr(24): Undeclared identifier: 'SndPlaySound'
[Error] Project1.dpr(24): Undeclared identifier: 'snd_ASync'
[Error] Project1.dpr(24): Undeclared identifier: 'snd_Memory'
[Error] Project1.dpr(25): Undeclared identifier: 'UnlockResource'
[Error] Project1.dpr(28): Undeclared identifier: 'FreeResource'
annum вне форума Ответить с цитированием
Старый 25.02.2011, 18:20   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

подключи модули windws и mmsystem

собранный ресурс положи в папку с проектом
Человек_Борща вне форума Ответить с цитированием
Старый 25.02.2011, 18:32   #5
annum
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 10
По умолчанию

вы уж извините что я такой лузер в этом,но как собрать РЕС файл?
и можно подробнее? я в файле project1.dpr в юзез вписую windows b mmsystem, потом директиву,потом процедуру дописую,да?
annum вне форума Ответить с цитированием
Старый 26.02.2011, 20:46   #6
annum
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 10
По умолчанию

апп помогите пожалуйста!
annum вне форума Ответить с цитированием
Старый 26.02.2011, 20:58   #7
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

вот, сам сеичас читаю
http://demi-s.narod.ru/resources/008.html
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 26.02.2011, 22:38   #8
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

http://pblog.ru/?p=11
И не нужно кросспостить !
asmodey1 вне форума Ответить с цитированием
Старый 27.02.2011, 13:10   #9
annum
Пользователь
 
Регистрация: 08.02.2011
Сообщений: 10
По умолчанию

да просто я надеюсь что хоть где-то кто-то поможет
annum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ресурсы StartMis Общие вопросы Delphi 11 16.07.2010 12:03
Ресурсы VladimirVB Win Api 3 23.08.2009 12:47
Ресурсы W0LF Общие вопросы Delphi 1 01.08.2009 13:36
Ресурсы Witaliy Общие вопросы Delphi 1 27.04.2008 17:40
Ресурсы, зачем нужны ресурсы Hallo Обсуждение статей 0 12.12.2006 21:30