Hallo,
beim Aufrufen des Programms, sollen nacheinander drei Midis abgespielt werden. Mit wait:=true funktioniert dann die nächsten 10min gar nichts mehr, geht also nicht. Dann wollte ich mit hilfe von notify:=true ein OnNotify Ereignis aufrufen und mit einer globalen Variable i vom Typ integer prüfen, die wievielte Midi bereits gespielt wurde. Das Problem ist nur, dass nach dem ersten abspielen, wenn also das erste mal die Prozedur für OnNotify aufgerufen wird, dann hängt sich das Programm auf. Liegt das Problem an einem Programmierfehler oder ist die Idee komplett unbrauchbar für dieses Problem?
Code gibt's natürlich auch:
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
with Mediaplayer1 do
begin
FileName:= ExtractFilePath(ParamStr(0))+'Midi1.mid'; {Da die Midi files alle im selben Ordner wie das Programm liegen benutze ich ExtractFilePath(ParamStr(0)) um den Speicherort der Exe einzufügen, dass dies funktioniert sieht man ja daran, dass die erste Midi abgespielt wird.}
Open;
Play;
i:=0;
Notify:=true;
Close;
end;
end;
procedure TForm2.MediaPlayer1Notify(Sender: TObject);
begin
if i=0 then
begin;
with Mediaplayer1 do
begin;
FileName:=ExtractFilePath(ParamStr(0))+'Midi2.MID';
Open;
Play;
i:=1;
Notify:=true;
Close;
end;
end
else if i=1 then
begin;
with Mediaplayer1 do
begin;
FileName:=ExtractFilePath(ParamStr(0))+'Midi3.Mid';
Open;
Play;
Close;
end;
end;
end;
Vielen Dank für die Hilfe
Trush