Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi randomize (https://www.delphipraxis.net/122950-randomize.html)

sunrise 24. Okt 2008 18:37


randomize
 
Hallo

Kleine frage zu randomize. ich habe hier diese Mediaplayer procedur die eine resource datei abspielt
Delphi-Quellcode:
procedure test;
   var
 rStream: TResourceStream;
 fStream: TFileStream;
 fname: string;
 begin

 fname := ExtractFileDir(Paramstr(0))+'test1.mp3';
 rStream := TResourceStream.Create(hInstance, 'test1', RT_RCDATA) ;
 try
  fStream := TFileStream.Create(fname, fmCreate) ;
  try
   fStream.CopyFrom(rStream, 0) ;
  finally
   fStream.Free;
  end;
 finally
  rStream.Free;
 end;

 MediaPlayer1.Close;
 MediaPlayer1.FileName:=fname;
 MediaPlayer1.Open;
 MediaPlayer1.Play;

     end;
Dazu habe ich 16 Resourcen ,jede resource ist eine kleine Audio datei. Wie kann ich nun via Randomize die prozedur umschreiben das jedesmal eine andere resource datei abgespielt wird?
Stehe gerade echt auf dem schlauch. Hoffe jemand von euch kann mir weiterhelfen... :cry:

[edit=SirThornberry]Code-Tags durch Delphi-Tags ersetzt - nächstes mal bitte die richtigen Tags verwenden - Mfg, SirThornberry[/edit]

nahpets 24. Okt 2008 18:47

Re: randomize
 
Hallo,

meinst Du sowas?
Delphi-Quellcode:
fname := ExtractFileDir(Paramstr(0))+'test' + IntToStr(Random(15) + 1) + '.mp3';

sunrise 24. Okt 2008 18:54

Re: randomize
 
Hallo

danke für deine antwort.hm... eigentlich auch nicht schlecht.Aber dein code würde davon ausgehen das sich alle audio dateien in dem ordner befinden. Ich habe sie als resourcen im projekt. :(

nahpets 24. Okt 2008 18:57

Re: randomize
 
Schön, dann eben so:
Delphi-Quellcode:
rStream := TResourceStream.Create(hInstance, 'test' + IntToStr(Randomize(15) + 1), RT_RCDATA);
Und wofür ist fName in Deinem Quelltext?

MSSSSM 24. Okt 2008 19:12

Re: randomize
 
Der will das wohl temporäer entpacken.

sunrise 24. Okt 2008 19:19

Re: randomize
 
jap, fname steht für filename.
Ich bekomme bei deinem Code einen Error "nahpets". Delphi6: too many actual parameters.

nahpets 24. Okt 2008 19:24

Re: randomize
 
Sorry muss random und nicht randomize heißen.

Aber wenn Du die Recource entpackst, solltet Du nur einen Zufall einbauen:

Delphi-Quellcode:
Var
  sZufall : string;

begin
...
  sZufall := 'test' + IntToStr(Random(15) + 1);
  rStream := TResourceStream.Create(hInstance, sZufall, RT_RCDATA) ;
  fname := ExtractFileDir(Paramstr(0))+sZufall + '.mp3';
...

sunrise 24. Okt 2008 19:54

Re: randomize
 
Vielen dank...

Ich verstehe das nicht, warum bekomme ich nun error,s von wegen , res. not found....

sirius 24. Okt 2008 20:33

Re: randomize
 
Groß- und Kleinschreibung beachtet?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.

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