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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2007, 18:11   #11
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Товарищи программисты, по-моему я тупой. Вы не могли бы подробно рассказать, каким образом добавить *.wav в в те самые ресурсы?(или ссылочку дать) И чтобы потом, например, при нажатии кнопки можно было проиграть этот *.wav из того ресурса.
Kashp вне форума Ответить с цитированием
Старый 06.08.2007, 18:24   #12
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Сохраняешь проект, в папке с ним будет project1.res, открываешь его Restorator'ом, добавляешь нужный файл как RCDATA, сохраняешь. Вместо Restorator можно использовать Resource Workshop от того же Borland, консольный brcc, вроде есть в делфи или что-то из этого например http://www.softlinks.ru/files/s195p1.php
пыщь
JTG вне форума Ответить с цитированием
Старый 06.08.2007, 18:56   #13
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Сохраняешь проект, в папке с ним будет project1.res, открываешь его Restorator'ом, добавляешь нужный файл как RCDATA, сохраняешь. Вместо Restorator можно использовать Resource Workshop от того же Borland, консольный brcc, вроде есть в делфи или что-то из этого например http://www.softlinks.ru/files/s195p1.php
Так, скачал Resource Builder (он нормальный? Подойдет?), скомпилировал. А вот теперь какой код надо написать, чтобы я нажал на кнопку и *.wav из ресурсов проигрался?
Kashp вне форума Ответить с цитированием
Старый 07.08.2007, 09:20   #14
Kashp
Форумчанин
 
Регистрация: 05.08.2007
Сообщений: 225
По умолчанию

Вот что получилось, но не работает, подскажите ошибку пожалуйста!

Цитата:
implementation

{$R *.dfm}
{$R base.res}

procedure TForm1.Button1Click(Sender: TObject);
var
WaveHandle : THandle;
WavePointer : pointer;
begin
WaveHandle := FindResource(hInstance,'Dudka.wav', RT_RCDATA);
if WaveHandle <> 0 then
begin
WaveHandle:= LoadResource(hInstance,WaveHandle);
if WaveHandle <> 0 then
begin
WavePointer := LockResource(WaveHandle);
PlayResourceWav:= sndPlaySound(WavePointer, SND_MEMORY or SND_ASYNC);
UnlockResource(WaveHandle);
FreeResource(WaveHandle);
end;
end;
end;

end.
Kashp вне форума Ответить с цитированием
Старый 07.08.2007, 11:44   #15
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

sndPlaySound устарела - это из 16-битной dll, используй лучше PlaySound

Назови Dudka.wav как-то подругому без точки (на всякий случай) и редактируй файл с ресурсами проекта, который по умолчанию Project1.res и тогда не придётся подключать base.res
---
Кстати, хоть uses mmsystem добавил-то?
Ща гляну ещё, Playsound вроде прямо из ресурса играть может
---

Да, так и есть,
Создавай в Project1.res (или как там твоя прога зовётся) свой тип WAVE (вместо RCDATA!) в него пихай сам звук, обзывай как хочешь, например DUDKA

В OnClick пиши всего одну строчку:
PlaySound('DUDKA',HInstance,SND_RES OURCE+SND_ASYNC+SND_LOOP)
пыщь

Последний раз редактировалось JTG; 07.08.2007 в 11:57.
JTG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать занятый системный файл Alter Софт 6 31.12.2010 14:01
Каким образом решить мою проблему?! beliy-dis Microsoft Office Excel 5 01.08.2008 10:25
найти, каким образом можно получить длину строки. igroman Общие вопросы Delphi 2 25.05.2008 17:52
Каким образом Delphi компилирует EXE? Jupiter Общие вопросы Delphi 4 26.03.2008 16:52
как скопировать файл Scorpeon Общие вопросы Delphi 1 19.04.2007 13:45