Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите текст программы, а может только процедуру [D7, WinXP]


Страницы:   1 2

tamagavk ©   (2004-06-20 12:37:00) 

Здравствуйте уважаемые любители Delphi!
Помогите и подскажите, как написать прогу(а может только процедуру),которая при определенных действиях,например,при нажатии кнопки, воспроизводила WAV файл, но не откуда-то с жесткого диска, а из памяти программы. Все ответы и предполо-
жения присылать по адресу tamagavk@comail.ru   Зараннее благодарен!


Kind   (2004-06-21 22:19:00) [1]

Это что первоапрельские шутки тут? :) Дык уже поздно!
tamagavk - если ты прикалываешься то Орехи это оценят, а если нет то ... наверно тебя неправильно понимают из-за того, что ты неправильно формулируешь вопрос.
WAV файл пристыковывается к твоему EXEшнику и остаётся в нём навсегда!

P.S. Единственное, что мне не понятно до сих пор это вот что - А зачем тебе удалять этот WAV файл??? :)


Anatoly Podgoretsky   (2004-06-21 11:39:00) [2]

А черт его знает, ты же код не приводишь.


tamagavk   (2004-06-21 11:35:00) [3]

УРААААА!НАКОНЕЦ-ТО!Получилось!Просидел полночи и добил этот ресурс.Все работает. Всем спасибо за помощь.

P.S
Получается Wav файл заносится в память ресурса и остается там навсегда и при каждом запуске программы и соответствующих действий он загружается из ресурса?Верно?


Anatoly Podgoretsky   (2004-06-21 09:22:00) [4]

Само, начиная с Д5


Огромное Кулясище   (2004-06-21 00:52:00) [5]

2 Anatoly Podgoretsky:

А компилировтаь кто будет? Неужели само?


Anatoly Podgoretsky   (2004-06-21 00:12:00) [6]

Огромное Кулясище   (20.06.04 23:04) [26]
Ну почему, в .rc файле
RESNAME RETYPE RESPATH
и подключить к проекту и это все.


tamagavk   (2004-06-20 23:59:00) [7]

Я так понял, что  myres.inc , myres.rc и myres.bat надо создавать в Блокноте. Я запускаю bat файл и где искать myres.res. Затем эти все файлы помещать в папку с программой Верно? Но программа не работает


Огромное Кулясище   (2004-06-20 23:04:00) [8]

2 tamagavk:

Все твои пожелания и предложения Anatoly Podgoretsky реализованы на той странице, что я тебе посоветовал. Никто тебе в двух словах не сможет объяснить, как создать ресурс. Заодно читай ссылку из }{enon © (20.06.04 21:02) [15].


tamagavk   (2004-06-20 23:00:00) [9]

Так я и спрашиваю последовательность моих действий:как создавать ресурс и т.п.


Anatoly Podgoretsky   (2004-06-20 22:43:00) [10]

Помести его в ресурсы и затем играй или из памяти или напрямую из ресурса.


tamagavk   (2004-06-20 22:35:00) [11]

Я понял, что это не то, что я хочу. Вы все имеете ввиду не закрывая программу удалять Wav файл и после нажимать на кнопку. Это получается.Мне НАДО чтобы я закрыл программу, файл удалил, затем снова запустил программу и файл воспроизводился. Тут наверно не обойтись без ресурсов. Но этого я вообще не знаю.
Растолкуйте, пожайлуста, последовательность моих действий(только не надо указывать на страницу, там много всего нового и я ничего не понял).Желательно с примером, например,тот же проигрыш WAV файла


}{enon   (2004-06-20 22:28:00) [12]

Пристрелите меня [ по Интернету :) ]!
Если в вопросе "из памяти программы" значит, что файл не должен валяться на диске, а должен быть запрятан где-то в самой программе, то это делается через ресурсы (смотри ссылку выше). Через "tada := " и т.д. ты не чего не зделаешь, как не издевайся над кодом, т.к. файл должен существовать хоть где-то, а раз его нет на диске, то "где-то" - это твой экзешник.


tamagavk   (2004-06-20 22:20:00) [13]

Так а если я стираю эти две строки все равно не помогает


Огромное Кулясище   (2004-06-20 22:12:00) [14]

2 tamagavk:

Запусти программу, не знакрывая её удали файл и нажми кнопку. Когда ты закрываешь программу выполняется код:

finalization
tada := ''; // Releases the memory taken by the string

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


Огромное Кулясище   (2004-06-20 22:10:00) [15]

2 }{enon:

Блин! Я же сразу не понял, что он удаляет файл и потом ещё раз запускает программу!!!!


}{enon   (2004-06-20 22:05:00) [16]

2 Огромное Кулясище

Блин, объясни мне КАК он играет, если при инициализации LoadFile(tada) вызывает ошибку, т.к. файл не существует?


tamagavk   (2004-06-20 22:00:00) [17]

Напмсал точно также. Сначала все работает.После удаления Wav файла запускаю программу и она мне выдает:  что типа выполнила недопустимую ошибку и будет закрыта, а затем еще одна ошибка:
"Runtime error 217 at 0041576A"
В чем дело?


Огромное Кулясище   (2004-06-20 21:35:00) [18]

2 tamagavk:

Вот модуль:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, MMSystem;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

function LoadFile(const FileName: TFileName): string;

var
 Form1: TForm1;
 tada: String;

implementation

{$R *.DFM}

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:\s1.wav');

finalization
tada := ''; // Releases the memory taken by the string

end.

На форме одна кнопка. Так вот, я запустил, проверил что играет. Удалил файл - нажал кнопку и всё играет. Так что делай выводы.


}{enon   (2004-06-20 21:02:00) [19]

Сорри, временно отключился. Про работу с ресурсами читай тут:
http://blackman.wp-club.net/lection/resurs.php


tamagavk   (2004-06-20 20:45:00) [20]

Ну же, мастера, Расскажите как создать ресурс и использовать его в программе


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо