unit Sound_in_exe;

interface

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

type
  TFormWhithSound = class(TForm)
    ButtonExit: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ButtonExitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormWhithSound: TFormWhithSound;

implementation

{$R *.dfm}
// Подключение ресурса
{$R SOURCE.RES}

// Функция, которая воспроизводит звук, находящийся в ресурсе
procedure RetrieveLoadSound;
var
  hResource : THandle;
  pData     : Pointer;
begin
  // Загружаем файл ресурса и находим звук под именем 'LOADSOUND'
  hResource:=LoadResource( hInstance, FindResource(hInstance, 'LOADSOUND', RT_RCDATA));
  try
    // Находим адрес загруженного ресурса
    pData := LockResource(hResource);
    if pData = nil then raise Exception.Create('Ошибка чтения ресурса LOADSOUND');
    // Воспроизводим звуковой файл
    sndPlaySound(pData, SND_MEMORY);
  finally
    // Освобождаем ресурс
    FreeResource(hResource);
  end;
end;

// Обработчик события создания главного окна приложения
procedure TFormWhithSound.FormCreate(Sender: TObject);
begin
RetrieveLoadSound();
end;

// Обработчик события нажатия на кнопку
procedure TFormWhithSound.ButtonExitClick(Sender: TObject);
begin
Close;
end;

end.
