
19.11.2009, 18:43
|
Прохожий
|
|
Регистрация: 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.
|