Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Sounds (https://www.delphipraxis.net/62285-sounds.html)

hans101 2. Feb 2006 15:09


Sounds
 
Hy

Ich müsste für das Jump'n'Run game noch wissen, wie ich sounds (welches format ist erst mal egal) in delphi einbauen kann...

Ich würde mich sehr über eure hilfe freuen.

:wiejetzt:

dahead 2. Feb 2006 15:13

Re: Sounds
 
Such doch mal hier im Forum nach "sndPlaysound" bzw. "Playsound".

Delphi-Quellcode:
uses
  MMSystem;
...
      sndPlaySound(@fSoundFilename[1], SND_ASYNC); //asynchron abspielen
...

hans101 2. Feb 2006 16:54

Re: Sounds
 
:wiejetzt: , brauch man da ne Procedur, oder wie muss ich den Pfad des Sounds angeben???????????? :wiejetzt:

turboPASCAL 2. Feb 2006 17:11

Re: Sounds
 
Delphi-Quellcode:
sndPlaySound(PChar, Flags)
Delphi-Quellcode:

uses mmsystem;

procedure Play(fSoundFilename: String);
begin
  sndPlaySound(PChar(fSoundFilename), SND_ASYNC);
end;
Delphi-Referenz durchsuchensndPlaySound verlangt einen PChar-Typ, die schreibweise @fSoundFilename[1] ist ein String der als Pointer angegeben ist.

lebbesch007 3. Feb 2006 12:49

Re: Sounds
 
ich glaube er wollte wissen, ob man den Pfad noch angeben muss, ich kenne mich aber damit auch nicht aus :roll:

igel457 3. Feb 2006 13:20

Re: Sounds
 
Ja einfach Pfad zur WAV angeben:
Delphi-Quellcode:
      sndPlaySound('C:\Windows\Media\Ding.wav', SND_ASYNC); //asynchron abspielen
Problem ist nur das der Pfad vom Typ PChar und nicht vom Typ String ist.
Deshalb zum Beispiel:
Delphi-Quellcode:
var
  s:string;
begin
  s := 'C:\blabla.wav';
  sndPlaySound(PChar(s), SND_ASYNC); //asynchron abspielen
end;
Hoffe geholfen zu haben

lebbesch007 5. Feb 2006 13:02

Re: Sounds
 
Kann man den Pfad auch so angeben, dass er die Datei nimmt, die im Ordner der .exe ist???,also nicht C:..... :gruebel:

dahead 5. Feb 2006 13:08

Re: Sounds
 
IncludeTrailingPathDelimiter(ExtractFileDir(ParamS tr(0))) liefert dir den Pfad der Exe mit abschließendem Backslash.

Du kannst auch Application.Exename gepaart mit ExtractFileDir verwenden.

Es ist meist sinnvoll sich gleich beim Programmstart dieses Verzeichnis für die ein oder andere Operation zu merken.

lebbesch007 5. Feb 2006 13:14

Re: Sounds
 
so dann ungefähr (s wird später als sound verwendet) :

s := 'IncludeTrailingPathDelimiter(ExtractFileDir(Param Str(0)))\m2.wav'; ???

dahead 5. Feb 2006 13:19

Re: Sounds
 
nein, eher so:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  ...
  private
    ...
    fAppDir: String;
    ...
  public
   ...
  end;

...
procedure TForm1.FormCreate(Sender: TObject);
begin
  fAppDir          := IncludeTrailingPathDelimiter(ExtractFileDir(ParamStr(0)));
...
end;
also auf jeden Fall ohne die umschließenden '-Zeichen. Die brauchst du nur, wenn du der String-Variable einen bestimmten String zuweisen willst. Bsp.:

Delphi-Quellcode:
var
 fString: String;
begin
  fString := 'Dies ist ein Test';
end;
Weist du der String-Variablen (also fAppDir oder fString) einen String zu, dann kannst du die logischerweise weglassen.

Außerdem ist durch den Befehl IncludeTrailingPathDelimiter beim String fAppDir bereits ein Backslash dran. Du fügst ihn unten aber doppelt hinzu.

edit: bisschen ausführlicher.

idontwantaname 5. Feb 2006 13:20

Re: Sounds
 
ist euch eigentlich aufgefallen, dass er das in .NET schreiben will ??

dahead 5. Feb 2006 13:23

Re: Sounds
 
Zitat:

Zitat von idontwantaname
ist euch eigentlich aufgefallen, dass er das in .NET schreiben will ??

ja, aber ich hoffe dass diese grundlegenden dinge dort ebenfalls so geregelt sind, oder? (hab bisher selbst noch nichts mit .net gemacht, daher keine ahnung)

JasonDX 5. Feb 2006 13:49

Re: Sounds
 
Zitat:

Zitat von idontwantaname
ist euch eigentlich aufgefallen, dass er das in .NET schreiben will ??

ich wage zu behaupten dass er das falsch markiert hat:


Zitat:

Zitat von hans101
Ich müsste für das Jump'n'Run game noch wissen, wie ich sounds (welches format ist erst mal egal) in delphi einbauen kann...

und der Jump'n'Run-Thread is als Win32 markiert. Zudem siehts auch ziemlich nach Win32-Code aus, von daher wage ich zu bezweifeln, dass es sich wirklich um ein .NET-Thema handelt ;)

greetz
Mike

3_of_8 5. Feb 2006 13:54

Re: Sounds
 
Also IMHO ist IncludeTrailingPathDelimiter oder wie das heißt unnötig, zumindest bei mir liefert ExtractFilePath(ParamStr(0)); immer nen Backslash mit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz