Delphi-PRAXiS
Seite 1 von 2  1 2      

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 14: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 14: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 15:54

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

turboPASCAL 2. Feb 2006 16: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 11: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 12: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 12: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 12: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 12: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 12: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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr.
Seite 1 von 2  1 2      

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