Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Delphi

Доброго времени суток.
WinXP, Delphi 7. Проблема такая:
1) Как в тело разрабатываемой программы, добавить несколько WAV-файлов, и потом
проиграть их?
2) Можно ли сделать это с MIDI-файлами?
3) Как правильно добавить какой-либо файл в файл ресурсов?
4) В чем различие между brcc32.exe и brc32.exe.

Пробовал так, неработает: (У меня .rc файл компилируется в .res только с помощю
brc32.exe )

Необходимо создать обыкновенный текстовой файл, например,
MyWave.rc и написать следующее:
MyWave RCDATA LOADONCALL MyWave.wav
Затем, созданный файл необходимо скомпилировать:
brcc32.exe MyWave.rc.
После компиляции, создается файл MyWave.res.
Далее, в самой программе необходимо написать следующий код:
{$R MyWave.res}
procedure RetrieveMyWave;
var
hResource: THandle;
pData: Pointer;
begin
hResource:=LoadResource( hInstance, FindResource(hInstance, 'MyWave', RT_RCDATA));
try
pData := LockResource(hResource);
if pData = nil then
raise Exception.Create('Cannot read MyWave');
PlaySound('MyWave', 0, SND_MEMORY);
finally
FreeResource(hResource);
end;
end;

Заранее благодарен,
Алексей.
Номер выпуска : 2131
Возраст листа : 154 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86531
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "Alex" Sun, 22 Feb 2004 11:03:38 +0600 (#86531)

 

Ответы:

Здравствуйте, Alex.

Вы писали 22 февраля 2004 г., 7:03:38:

с помощю

Повторю еще раз мое прошлое сообщение на твою тему

"Тема: Re: Хранение файлов в файле =)"
Если ты хочешь сохранить (хранить) некие файлы внутри своего ЕХЕ или
DLL и их от туда вытягивать и работать с ними, могу посоветовать
следующие на Делфи (на Билдере будет тоже самое, но другой синтаксис):

создаешь текстовый файл с расширением .RC и пишешь в нем
<имя ресурса> <тип хранимого ресурса> <имя файла>
например:
BackGround0 BITMAP "BackGround0.bmp"
BackGround1 BITMAP "BackGround1.bmp"
BackGround2 BITMAP "BackGround2.bmp"
BackGround3 BITMAP "BackGround3.bmp"
SoundAbout WAVE "About.wav"
CurSQLWait RCDATA "SQLWait.ani"
AnimateWait AVI "AnimateWait.avi"

тут перечислены стандартные типы ресурсов. так же можно использовать
свои, наприме MYGIF. но лучше использовать стандартные, так тогда
проще их вытягивать будет. Так как для GIF и JPG нет стандартных
типов, необходимо использовать RCDATA.
Потом все это сохраняешь под именем myres.rc
ОЧЕНЬ ВАЖНО, что бы все перечисленные в нем файлы и сам файл RC лежали
в одной папки.

Далее, компилируешь его с помощью утилиты brcc32 в файл .RES
brcc32 myres.rc
В результате получаешь myres.res
Вот его потом присоединяешь в свое проект или в отдельный модель.
{$R myres.res}

Тот файл RES, который сама Делфя используем по умолчания для каждого
проекта, лучше не использовать, получишь много головной боли хлопот. Я
это сам на своей шкуре испытал.

После присоединения его к проекты надо проект перебилдить (Build), а
не перекомпилировать, т.к. при компиляции он не компилит файл RES в
ЕХЕ. И в последующих изменениях в RC файле надо каждый раз билдить
весь проект.

Что бы вытянуть эти ресурсы из ЕХЕ файла и сохранить их в файлы:
var
ResStream : TResourceStream;
begin
ResStream := TResourceStream.Create(hInstance, <имя ресурса>, RT_RCDATA);
ResStream.SaveToFile('NameFile.ext');
ResStream.Free;
end;

Смотри в Хелпе:
TResourceStream, LoadImage, LoadFromResourceName, LoadFromResourceID,
LoadIcon, PlaySound, FindResource, FindResourceEx и т.д. и т.п.
Для проигрывания WAV файла из ресурсов я делаю так:

PlaySound('SoundAbout', HInstance, SND_RESOURCE +
SND_ASYNC +
SND_LOOP);
гед 'SoundAbout' - имя ресурса (см. выше).

С уважением,
Feniks mailto: feni***@b*****.ua
Номер выпуска : 2137
Возраст листа : 155 (дней)
Количество подписчиков : 388
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/87153
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Feniks Mon, 23 Feb 2004 11:49:45 +0200 (#87153)