Показать сообщение отдельно
  #5  
Старый 19.11.2009, 18:43
paratrooper paratrooper вне форума
Прохожий
 
Регистрация: 23.05.2009
Сообщения: 12
Репутация: 10
По умолчанию

2 Nich
Большое спасибо, очень помогло.
Однако так и не понял, что такое joue, и в поиске не нашел...
Код:
procedure joue(le_son : pchar);
var
  h: THandle;
  p: pointer;
begin
  h := FindResource(hInstance,
                    le_son,
                    'WAV');
  h := LoadResource(hInstance, h);
  p := LockResource(h);
  sndPlaySound(p,
               SND_MEMORY or SND_SYNC);
  UnLockResource(h);
  FreeResource(h);
 end;

Честно говоря, очень смутило это...
http://pblog.ru/lab/?p=699#more-699
http://pblog.ru/lab/?p=355#more-355
На основании информации с этих ссылок состряпал листинг, но ничего не пошло...
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls, mmsystem;

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

{$R mywave.RES}

procedure RetrieveMyWave;
var
  hResource: THandle;
  pData: Pointer;
begin
  hResource:=LoadResource( hInstance, FindResource(hInstance, 'MyWave', RT_RCDATA));
  try
    pData := LockResource(hResource);
    if pData = nil then
      raise Exception.Create('Cannot read MyWave');
     // Здесь pData указывает на MyWave
     // Теперь можно, например, проиграть его (Win32):
    PlaySound(pData, 0, SND_MEMORY);
  finally
    FreeResource(hResource);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
PlaySound('mywave', 0, SND_RESOURCE or SND_ASYNC);
end;

end.
Ответить с цитированием