Zitat von
choose:
@Lefko: Um es noch einmal zusammenzufassen. Die solltest den Thread Supended kreieren, und vorerst UniqueString verwenden. Außerdem empfiehlt es sich, den Aufruf des geerben Konstruktors als erste Anweisung in der überschriebenen Implementierung aufzurufen. Abschließend im Konstruktor dann Resume aufrufen.
Hi,
ich hab jetzt all die Tipps eingebaut, aber trotzdem kommt es zu einer
AV!
hier der Text:
Delphi-Quellcode:
unit USoundThread;
interface
uses
Classes, MMSystem;
type
TSoundThread =
class(TThread)
private
SoundPfad :
string;
protected
procedure Execute;
override;
public
{ Public declarations }
constructor Create(Pfad :
string);
end;
implementation
{ TSoundThread }
constructor TSoundThread.Create(Pfad :
string);
begin
inherited Create(true);
UniqueString(Pfad);
//Ab hier kommt die AV
SoundPfad := Pfad;
Resume;
//FreeOnTerminate := true;
end;
procedure TSoundThread.Execute;
begin
{ Place thread code here }
sndPlaySound(PChar(SoundPfad), SND_ASYNC
or SND_LOOP);
//if terminated then break;
end;
end.
Was kann da noch zu Fehlern führen?!
MfG Lefko.