Einzelnen Beitrag anzeigen

Trush

Registriert seit: 3. Feb 2004
18 Beiträge
 
#1

Notify Prozedur für TMediaPlayer lässt Programm hängen.

  Alt 3. Mär 2004, 20:30
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
  Mit Zitat antworten Zitat