Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

Re: Problem mit PlaySound-Befehl

  Alt 20. Apr 2006, 18:56
Jane, ist klar. Du musst das laden der Resource global machen. Windows läd zur Wiedergabe nur einen Teil der Resource.
In deinem Fall heisst dass das wenn der Sound wiedergegeben wird nicht die Resource nachgeladen werden kann und somit hängt das Programm...

So wird es richtiger:

Delphi-Quellcode:
//...

const
  SoundsDLL = 'MediaRes.dll';

var
  DLLHandle: THandle;

procedure TForm.ButtonClick...
begin
  PlaySound(Nil, 0, 0);

  if DLLHandle > 0 then
  begin
    if not PlaySound(PChar('SNDOK'), DLLHandle, SND_ASYNC Or SND_MEMORY Or SND_RESOURCE) then
      MessageBox(Handle, 'Sound konnte nicht abgespielt werden', 'Information', MB_OK);
  end else
  begin
    MessageBox(Handle, 'DLL-Ladefehler', 'Information', MB_OK);
  end;
end;

procedure TForm.FormCreate...
begin
  DLLHandle := LoadLibraryEx(SoundsDLL, 0, LOAD_LIBRARY_AS_DATAFILE);
end;

procedure TForm.FormDestroy...;
begin
  FreeLibrary(DLLHandle);
end;
//...
(ungetested)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat