![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите текст программы, а может только процедуру [D7, WinXP]
tamagavk © (2004-06-20 12:37:00)Здравствуйте уважаемые любители Delphi!
Помогите и подскажите, как написать прогу(а может только процедуру),которая при определенных действиях,например,при нажатии кнопки, воспроизводила WAV файл, но не откуда-то с жесткого диска, а из памяти программы. Все ответы и предполо-
жения присылать по адресу tamagavk@comail.ru Зараннее благодарен!
tamagavk (2004-06-20 20:03:00) [21]Наверно,скажите тогда метод загрузки из ресурса. Но только я с ним никогда не работал, объясните поподробнее или пришлите на e-mail tamagavk@comail.ru
}{enon (2004-06-20 19:59:00) [22]... то все будет работать В ТОЛЬКО ЧТО ЗАПУЩЕННОЙ КОПИИ ПРОГРАММЫ. Ну не может прога загрузить несуществующий файл. Видимо ты неверно сформулировал вопрос, и звук надо запускать не из памяти а из ресурса.
tamagavk (2004-06-20 19:31:00) [23]Так я запускал программу не один раз, все игралось, но после перемещения перестало проигрываться
}{enon (2004-06-20 19:25:00) [24]А с какой стати он будет запускаться, если ты переместил файл? Он не может найти файл, который нужно загрузить в память, потому и выдает ошибку. Вот если ты запустишь программу, а ПОТОМ переместишь файл, то все будет работать. WAV играется из памяти, но сам по себе он там не окажется - его нужно или загрузить, или записать.
tamagavk (2004-06-20 19:13:00) [25]Все написал как вы сказали, но ведь все равно идет обращение к файлу на жестком диске?Стоит мне переместить мой WAV файл в другое место жесткого диска, так проект не запускается и вылетает ошибка!
Огромное Кулясище (2004-06-20 18:50:00) [26]> Кстати, пишу методом PlaySound как указано на предложенной выше странице
На предложеной выше странице предлагается метод sndPlaySound, если уж быть точным.
Далее, ты уверен, что написал так:
uses SysUtils, Classes, MMSystem;
var
tada: string;
function LoadFile(const FileName: TFileName): string;
begin
with TFileStream.Create(FileName,
fmOpenRead or fmShareDenyWrite) do begin
try
SetLength(Result, Size);
Read(Pointer(Result)^, Size);
except
Result := ''; // Deallocates memory
Free;
raise;
end;
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
sndPlaySound(Pointer(tada), SND_MEMORY
Or SND_NODEFAULT Or SND_ASYNC);
end;
initialization
tada := LoadFile('C:\Windows\Media\Tada.wav');
finalization
tada := ''; // Releases the memory taken by the string
end.
Как видишь, SND_MEMORY уже вставлено.
tamagavk (2004-06-20 18:13:00) [27]Кстати, пишу методом PlaySound как указано на предложенной выше странице, но если стереть файл с жесткого диска, звука не будет!!
Что такое SND_Memory? Может оно поможет? Напишите куда надо это вставлять
tamagavk (2004-06-20 18:02:00) [28]Насчет PlaySound сделал все,как написано, но звука нетууу. В чем дело напишите поподробнее
Огромное Кулясище (2004-06-20 14:16:00) [29]> SND_MEMORY
Прикольно, не знало раньше.
> A можно поподробнее насчет PlaySound или SND_Memory(я имею ввиду текст)Я ведь начинающий.
Э-э, побачь тута:
http://www.latiumsoftware.com/en/delphi/00024.php
tamagavk (2004-06-20 13:47:00) [30]A можно поподробнее насчет PlaySound или SND_Memory(я имею ввиду текст)Я ведь начинающий.
Anatoly Podgoretsky (2004-06-20 13:14:00) [31]SND_MEMORY
Огромное Кулясище (2004-06-20 13:09:00) [32]2 Anatoly Podgoretsky:
Вы имеете ввиду флаг SND_RESOURCE, т.е. проигрывание из ресурса как проигрывание из памяти?
Anatoly Podgoretsky (2004-06-20 13:02:00) [33]PlaySound