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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2010, 19:58   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию Как 'засунуть' звуковой файл в EXE-шник.чтоб моя прога состояла всего из одного exe

пишу будильник.ну не совсем будильник но суть не в этом.с ним у меня должен быть свой звуковой файл и я бы хотел как то засунуть его туда если это возможно
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 17.04.2010, 20:09   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Возможно, но в данном случае "минимализм" не целесообразен. Ничего ужасного не случится если рядом с вашим .exe будет находится еще пара тройка файлов.
BOBAH13 вне форума Ответить с цитированием
Старый 17.04.2010, 21:33   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,772
По умолчанию

2 betirsolt
Как ресурс или массив байтов...
p51x вне форума Ответить с цитированием
Старый 17.04.2010, 23:48   #4
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
2 betirsolt
Как ресурс или массив байтов...
к сожалению это для меня не так просто...тут читал на форме что надо через restorator в файл .res засунуть звуковой файл и вобщем как то так
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.04.2010, 00:30   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от betirsolt Посмотреть сообщение
к сожалению это для меня не так просто...тут читал на форме что надо через restorator в файл .res засунуть звуковой файл и вобщем как то так
Ничего подобного, всё гораздо проще. Допустим надо засунуть файл 0.mp3
1) Создаём файл SOUND.RC и пишем в него одну строку
MUS MP3FILE 0.mp3
2) В коде, например, в разделе implementation после строчки {$R *.dfm} добавляем
{$R 'Sound.res' 'Sound.rc'}
3) Добавляем в проект наш файл SOUND.RC. Например через меню Project - Add to project
4) Всё можно компилировать.

Чтобы достать файл во время работы, достаточно написать код
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Res: TResourceStream;
begin
  Res := TResourceStream.Create(Hinstance, 'MUS', 'MP3FILE');
  Res.SavetoFile('Music.mp3');//Имя под которым сохраним музыкальный файл
  Res.Free;
end;
eoln вне форума Ответить с цитированием
Старый 18.04.2010, 01:44   #6
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

1) Создаём файл SOUND.RC и пишем в него одну строку MUS MP3FILE 0.mp3
этот файл можно создать просто как текстовый документ потом написать в нем MUS MP3FILE 0.mp3 и поменять расширение на .RC??
Код:
Res.SavetoFile('Music.mp3');//Имя под которым сохраним музыкальный файл
его объязательно надо доставать из EXE-шника чтобы воспроизвести?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.04.2010, 09:51   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,772
По умолчанию

PlaySound умеет играть из памяти.
p51x вне форума Ответить с цитированием
Старый 18.04.2010, 17:56   #8
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
1) Создаём файл SOUND.RC и пишем в него одну строку
MUS MP3FILE 0.mp3
2) В коде, например, в разделе implementation после строчки {$R *.dfm} добавляем
{$R 'Sound.res' 'Sound.rc'}
3) Добавляем в проект наш файл SOUND.RC. Например через меню Project - Add to project
4) Всё можно компилировать.
сделал все как написано но когда пытаюсь компилить выдает ошибку
[DCC Error] E2161 Warning: Duplicate resource: Type MP3FILE, ID MUS; File E:\Мои документы\RAD Studio\Projects\будильник\Sound.res resource kept; file E:\Мои документы\RAD Studio\Projects\будильник\SOUND.res resource discarded.
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.04.2010, 18:14   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Попробуйте Resource Builder`ом. Потом сохраните как "Sound.res" и напишите просто {$R Sound.res}
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 18.04.2010, 18:56   #10
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

а как воспроизводить его не извлекая из EXE-шника?только по подробнее пожалуйста
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из программы 1.exe создаем пустой файл 2.exe. Как из программы 1 внести API функции в программу 2? X-LEV-X Общие вопросы Delphi 7 09.03.2010 08:33
как запустить из своего приложения чужой exe-шник SarahConner Общие вопросы Delphi 2 13.05.2009 20:36
чтение из одного exe файла, и запись в другой exe inndim Общие вопросы Delphi 2 04.02.2009 15:23
Как в прогу exe засунуть? Marsik Помощь студентам 3 13.01.2008 21:57
как сделать так чтоб моя прога при запуске о.с. стартовала steck Общие вопросы Delphi 11 03.04.2007 20:10