![]() |
Problem beim Programmbeenden
Beim Laden der Form wird eine WAV mittels
playsound ('wave.wav',0,snd_async or snd_loop); in einer Endlosschleife wiedergegeben. Beim beenden mittels X (Schließen) Buttons habe ich im OnClose Ereignis der Form dann stehen playsound (nil,0,snd_async); Das Programmfenster schließt, der Sound hört auf aber in dem Moment geht die CPU-Last der EXE gegen 100% (und die EXE verschwindet eben auch nicht). Was mache ich falsch ???? |
Ich denke mal, dass das an der Endlosschleife liegt.
Nimm die doch einfach mal heraus und probiere es nochmal und berichte ;-) |
Du kannst Deinen Sound auch ein letztes mal abspielen... ohne loop:
playsound ('wave.wav',0,snd_async); Damit wäre die Schleife auch abgebrochen. Vielleicht verursacht ja das "nil" den Fehler... |
:(
Habe probiert Sound zu starten mit ... playsound ('wave.wav',0,snd_async or snd_loop); playsound ('wave.wav',0,snd_async); playsound ('wave.wav',0,snd_sync); Sound spielt immer an wenn ich beim OnClose 'wave.wav' anstatt nil eingebe hört der Sound nicht mehr auf. In allen Fällen aber immer 100% CPU-Auslastung und Task läuft weiter. :shock: |
Hallo
OH sagt: Zitat:
Delphi-Quellcode:
oder
playsound(0,0,snd_async or snd_loop);
Delphi-Quellcode:
statt nil 0
playsound(0,0,SND_PURGE);
Sollte nun funken. |
:cry:
SND_PURGE bringt's auch nicht. CPU geht auf 100% bei EXE. Heul, schnief .... einer muß es doch wissen ... Hilfe !! |
Was passiert, wenn Du dich garnicht weiter um den Sound kümmerst und Deine Anwendung einfach mit Halt; abschiesst?
|
Hallo,
nun, ich habe eine Mini-App geschrieben und bei mir geht die CPU Auslastung auf max. 5% (während der Laufzeit):
Delphi-Quellcode:
...
VAR Form1 : TForm1; IMPLEMENTATION USES MMSystem; {$R *.DFM} PROCEDURE TForm1.Button1Click(Sender: TObject); //Start BEGIN playsound('C:\X-Files.wav', 0, snd_async OR snd_loop); END; PROCEDURE TForm1.Button2Click(Sender: TObject); //Stopp BEGIN playsound(NIL, 0, SND_PURGE); END; PROCEDURE TForm1.FormClose(Sender: TObject; VAR Action: TCloseAction); // Close Form BEGIN playsound(NIL, 0, snd_async OR snd_loop); END;
OK.,OK., NIL ist besser als 0 :oops: Warnung in der IDE:
Code:
252. Konstante 0 wurde zu NIL konvertiert
|
Bin mir ja nicht sicher aber könnte
Delphi-Quellcode:
nicht helfen wenn nichts mehr gespeichert werden muss und so?
Applicaton.Terminate;
Vielleicht mal testen und gucken ob die CPU Auslastung immer noch so hoch geht. MfG Florian :hi: |
Habe jetzt mal ein // vor alle soundbefehle gesetzt.
Es wird also keinerlei Soundkommando gegeben. Und siehe da CPU immer noch bei 100% wenn X-Button gedrückt wird. Es liegt also nicht am Sound. Jetzt muß ich mal suchen. :oops: |
:oops:
Habe Fehler entdeckt. Hatte Wavescroll eingebaut. Das lief nach beenden in einer Endlosschleife weiter. Da ich nicht weiß wie man das verhindert habe ich Wavescroll komplett aus Projekt entfert (seufz). Danke an alle und Sorry für mein Unwissen ... :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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