Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sound-ENDLOSSCHLEIFE (https://www.delphipraxis.net/138035-sound-endlosschleife.html)

DER_VIRUS 2. Aug 2009 18:15


Sound-ENDLOSSCHLEIFE
 
Hi
Bin sowol in delphi (2005) als auch hier neu. :mrgreen:

Ich würde gerne wissen, wie man in eine "VCL-Formularanwendung"
eine unsichtbare Endlosschleife einer einzigen wav, mp3 oder wma datei einfügt. :gruebel:

DANKE schonmal im voraus! :balloon:
Hab hier den code:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, StdCtrls, Buttons, ComCtrls, MPlayer;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
MainMenu1: TMainMenu;
Timer1: TTimer;
Start1: TMenuItem;
Stopp: TMenuItem;
Label2: TLabel;
Sopp: TMenuItem;
Label3: TLabel;
Image2: TImage;
Label4: TLabel;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Label5: TLabel;
Label6: TLabel;
Button4: TButton;
Timer2: TTimer;
Label7: TLabel;
Timer3: TTimer;
Timer4: TTimer;
procedure Timer4Timer(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure SoppClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Start1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure StoppClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
zaelerstatus, zaelerstatusb, counter, zz, zx : Integer ;
status : real;
zahl : byte;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
zx := zx +1;
if zahl mod 2 = 0 then
begin Image3.Visible := true;
Image4.Visible := false;
zaelerstatus := zaelerstatus + 1;
end

else
begin
Image3.Visible := false;
Image4.Visible := true;

end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
zx := zx +1;
if zahl mod 2 <> 0 then
begin Image3.Visible := true;
Image4.Visible := false;
zaelerstatus := zaelerstatus + 1;
end

else
begin
Image3.Visible := false;
Image4.Visible := true;

end;
end;

procedure TForm1.StoppClick(Sender: TObject);
begin
close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

randomize;
zahl := random(100) + 1;

if zaelerstatus = 99 then
begin
zaelerstatus := 0;
zaelerstatusb := 0;
showmessage('WOW, du bist einer der erfahrensten Leute,'+
'die dieses Spiel spielen! Herzlichen Glückwunsch!');
end;
if zaelerstatusb = 99 then
begin
zaelerstatusb := 0;
zaelerstatus := 0;
if zaelerstatus > 40 then showmessage('WOW, du hast es echt sehr lange durchgehalten!');
end;
zaelerstatusb := zaelerstatusb + 1;

if zaelerstatusb <> 0 then status := 100 * zaelerstatus/zaelerstatusb
else status := 100;
zx := 0;
end;

procedure TForm1.Start1Click(Sender: TObject);
begin
timer3.Enabled := true;
zaelerstatus := 0;
zaelerstatusb := 0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer4.Enabled := false;
timer3.Enabled := false;
button4.Visible := false;
zaelerstatus := 0;
if zaelerstatusb <> 0 then status := 100 * zaelerstatus/zaelerstatusb
else status := 100;

button1.Enabled := false;
button2.enabled := false;
end;

procedure TForm1.SoppClick(Sender: TObject);
begin
timer4.Enabled := false;
Timer1.Enabled := false;
button1.Enabled := false;
button2.enabled := false;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
Showmessage ('Das Spiel geht so: Du musst innerhalb einer Sekunde entscheiden, ob die Zahl GERADE(1) oder UNGERADE(3) ist !');
Showmessage ('Der Smiley zeigt dir ob du Richtig oder Falsch getippt hast!');
Showmessage ('Nachdem du es ausprobiert hast, kannst du die Prozentzahl deiner richtigen Züge diranzeigen lassen: (drücke %!)');
Showmessage ('Das Hilfesymbol verschwindet jetzt!');
Image2.Visible := false;
Showmessage ('Viel Spaß!');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
showmessage(floattostr(status)+'% der Versuche waren gut!');
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
zaelerstatus := 0;
zaelerstatusb := 0;
Timer1.Enabled := true;
button1.Enabled := true;
button2.enabled := true;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

Label1.Caption := IntToStr(zahl);
Label2.Caption := IntToStr(zaelerstatus);
Label6.Caption := InttoStr(zaelerstatusb);
status := round(status * 1) / 1;


end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
counter := counter +1;
If counter = 1 then Label7.Caption := ('3');
If counter = 2 then Label7.Caption := ('2');
If counter = 3 then Label7.Caption := ('1');
If counter = 4 then begin
button4.Visible := true;
Timer1.Enabled := true;
button1.Enabled := true;
button2.enabled := true;
timer4.Enabled := true;
Label7.Caption := ('Los!');
end;
If counter = 5 then begin
Label7.Caption := ('');
timer3.Enabled := false;
counter := counter -5;
end;
end;

procedure TForm1.Timer4Timer(Sender: TObject);
begin
if zx > 0 then begin
button1.Enabled := false;
button2.Enabled := false;
end
else

begin
button1.Enabled := true;
button2.Enabled := true;
end;
end;



end.

Jens Hartmann 2. Aug 2009 18:32

Re: Sound-ENDLOSSCHLEIFE
 
Hallo,

kommt drauf an wie du es vorhast. Endlosschleife, ist ja irgendwie doof. Du willst die ja wahrscheinlich irgendwodurch starten und später wieder stoppen. Du könntest das irgendwie so lösen...

Delphi-Quellcode:

Start...

while i = 1 do
  begin
    Deine Wav Datei ausführen
  end;

Stopp i=0 oder so ähnlich.
Du solltest mal nach denn Schleifenvarianten "WHILE, FOR etc. suchen.

Gruß Jens

Cyf 2. Aug 2009 19:59

Re: Sound-ENDLOSSCHLEIFE
 
:dp:
Beim nächsten mal kannst du den Delphi-Code-tag benutzen. :wink:

Was du suchst sollte, so etwas wie MSDN-Library durchsuchenPlaySound mit SND_LOOP sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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