Procedura play i random play z listboxa

0

Cześć
Przede wszystkim Wszystkim Wesołych Świąt.

Mam problem z procedurą losową i procedurą "play ,obie zamieszczam w całości poniżej ale najpierw problemy.

W procedurze losowej przy kompilacji wyskakuje error w linii self.play - Not enough actual parameters - chociaż Delphi w kodzie nie podkreśla błędu.

Gdy natomiast w procedurze już play dodam linię

self.play(tword(self.ListBox1.Items.Objects[self.ListBox1.ItemIndex]));

dalej jest error przy kompilacji w linii self.play ale gdy ją usunę szukając błędu i uruchomię program prze Run...
przy odtworzeniu dowolnego pliku .mp3 z listboxa program .exe nieoczekiwanie się zamyka

Gdzie jest problem?

A oto obie procedurki w całości:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 self.ListBox1.ItemIndex := Random(ListBox1.Items.count) - 0;
 self.play;   
end;

procedure TForm1.play(aword: tword);
begin
  if not fileexists(aword.FileName) then
  begin
    showmessage('Brak pliku ' + aword.FileName + ' .. !!!');
    exit;
  end;
  self.MediaPlayer1.close;
  self.MediaPlayer1.FileName := aword.FileName;
  self.play(tword(self.ListBox1.Items.Objects[self.ListBox1.ItemIndex]));
  self.MediaPlayer1.Open;
  self.MediaPlayer1.play;
end;
1
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 self.ListBox1.ItemIndex := Random(ListBox1.Items.count) - 0;
 self.play;    <-   brak parametru, powinno być  self.play(tword(self.ListBox1.Items.Objects[self.ListBox1.ItemIndex])) ;
end;
procedure TForm1.play(aword: tword);
begin
  if not fileexists(aword.FileName) then
  begin
    showmessage('Brak pliku ' + aword.FileName + ' .. !!!');
    exit;
  end;
  self.MediaPlayer1.close;
  self.MediaPlayer1.FileName := aword.FileName;
  self.play(tword(self.ListBox1.Items.Objects[self.ListBox1.ItemIndex]));  <- błąd , wywołujesz rekurencyjnie metodę play  bez warunku stopu i następuje przepełnienie stosu. Cała linia do usunięcia

   self.MediaPlayer1.Open;
  self.MediaPlayer1.play;
end;
0

W zdarzeniu TForm1.Play, ukryta zmienna Self wskazuje na formularz, nie na media player.

1 użytkowników online, w tym zalogowanych: 0, gości: 1