Delphi-Quellcode:
// etwas hübscher: ;)
procedure TSound.CheckPlay;
begin
if (PlayMusikIndex > -1) and (isRandom = False) then
begin
if ((Musik[PlayMusikIndex].Module <> NIL) and (FMUSIC_IsFinished(Musik[PlayMusikIndex].Module) = True)) or
((Musik[PlayMusikIndex].Stream <> NIL) and (FSOUND_IsPlaying(Musik[PlayMusikIndex].Channel) = False)) then randomMusik;
end;
end;
Hmmmm... Also wenn Musik, PlayMusikIndex, isRandom, FMUSIC_IsFinished, FSOUND_IsPlaying und randomMusik alles Felder und/oder Methoden von TSound sind, und randomMusik auch nur Zugriffe auf TSound-eigene Felder/Methoden macht, dann liegt das Problem wo anders - und ich wüsste auf Anhieb jetzt nicht wirklich wo
.
Für den Fall, dass da z.B. eine
DLL oder eine Kompo der
VCL mit im Spiel ist (was ich hieraus nicht erkennen kann), dann wäre ein Synchronize hier und da angebracht.
Aber es ist doch lediglich eine Prüfung, ob noch etwas angespielt wird, oder? Wäre es da nicht einfacher einfach einen Timer zu nehmen, der alle paar Sekunden mal nachschaut?
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel