Ver Mensaje Individual
  #1  
Antiguo 01-07-2008
Avatar de mattgaviota
mattgaviota mattgaviota is offline
Registrado
 
Registrado: jun 2008
Ubicación: Salta, Argentina
Posts: 4
Reputación: 0
mattgaviota Va por buen camino
Reproduccion aleatoria con un listbox

Hola, les cuento que estoy haciendo (como tantos otros) un reproductor de mp3. En el, manejo un playlist hecho con un tlistbox e hice (buscando en este foro como hacerlo) con un ttimer un metodo para reproducir las canciones de la lista ya sea aleatoriamente o de uno en uno. El codigo quedo asi :
Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
var
r:integer;
begin
if mediaplayer1.Mode=mpstopped then
begin
If MediaPlayer1.position=mediaplayer1.Length then
begin
  If checkbox1.Checked=false then
  begin
   If ListBox1.itemindex= ListBox1.items.count then
      ListBox1.itemindex:= -1;
   ListBox1.itemindex:= ListBox1.itemindex + 1;
   listbox2.ItemIndex:=listbox2.ItemIndex + 1;
  end;
  If checkbox1.Checked=true then
  begin
   Randomize;
   r:= Random(ListBox1.items.count);
   listbox1.ItemIndex:=r;
   listbox2.ItemIndex:=r;
  end;
reproducirdelistbox(listbox1.ItemIndex);
end;
end;
end;
donde reproducirdelistbox es una funcion que uso para reproducir la cancion que este seleccionada en el listbox.
El procedimiento anda, cuando termina una cancion pasa a la siguiente ya sea aleatoriamente o a la inmediatamente siguiente. El problema está en que cuando pulso stop y la canción está por terminar salta a la siguiente canción. Al parecer, segun creo yo, la propiedad position alcanza a la propiedad length antes de que la canción termine. Si me pueden ayudar le estaria agradecido, porque busque bastante y no encontre nada excepto esto que es de donde use para hacer el mio.

Última edición por mattgaviota fecha: 01-07-2008 a las 21:36:17.
Responder Con Cita