Contributor: SWAG SUPPORT TEAM
(*
This TI demonstrates how to make your Delphi 2.0
application "sing" by loading and playing a wave file
four different ways:
1) Use the sndPlaySound() function to directly
play a wave file.
2) Read the wave file into memory, then use the
sndPlaySound() to play the wave file
3) Use sndPlaySound to directly play a wave
file thats embedded in a resource file attached
to your application.
4) Read a wave file thats embedded in a resource
 file attached to your application into memory,
 then use the sndPlaySound() to play the wave file.
 To build the project you will need to:
1) Create a wave file called 'hello.wav'
in the project's directory.
2) Create a text file called 'snddata.rc'
in the project's directory.
3) Add the following line to the file 'snddata.rc':
HELLO WAVE hello.wav
4) At a dos prompt, go to your project directory
and compile the .rc file using the Borland Resource
compiler (brcc32.exe) by typing the path to brcc32.exe
and giving 'snddata.rc' as a parameter.
Example:
bin\brcc32 snddata.rc
This will create the file 'snddata.res' that
Delphi will link with your application's .exe
file.
Final Note: Keep on Jamm'n!
*)
unit PlaySnd1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;
type
 TForm1 = class(TForm)
 PlaySndFromFile: TButton;
 PlaySndFromMemory: TButton;
 PlaySndbyLoadRes: TButton;
 PlaySndFromRes: TButton;
 procedure PlaySndFromFileClick(Sender: TObject);
 procedure PlaySndFromMemoryClick(Sender: TObject);
 procedure PlaySndFromResClick(Sender: TObject);
 procedure PlaySndbyLoadResClick(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
{$R snddata.res}
uses MMSystem;
procedure TForm1.PlaySndFromFileClick(Sender: TObject);
begin
 sndPlaySound('hello.wav',
 SND_FILENAME or SND_SYNC);
end;
procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);
var
 f: file;
 p: pointer;
 fs: integer;
begin
 AssignFile(f, 'hello.wav');
 Reset(f,1);
 fs := FileSize(f);
 GetMem(p, fs);
 BlockRead(f, p^, fs);
 CloseFile(f);
 sndPlaySound(p,
 SND_MEMORY or SND_SYNC);
 FreeMem(p, fs);
end;
procedure TForm1.PlaySndFromResClick(Sender: TObject);
begin
 PlaySound('HELLO',
 hInstance,
 SND_RESOURCE or SND_SYNC);
end;
procedure TForm1.PlaySndbyLoadResClick(Sender: TObject);
var
 h: THandle;
 p: pointer;
begin
 h := FindResource(hInstance,
 'HELLO',
 'WAVE');
 h := LoadResource(hInstance, h);
 p := LockResource(h);
 sndPlaySound(p,
 SND_MEMORY or SND_SYNC);
 UnLockResource(h);
 FreeResource(h);
end;
end.


AltStyle によって変換されたページ (->オリジナル) /