[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    (*
    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.

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]