procedure TForm1.MediaPlayer1Notify(Sender: TObject); begin if MediaPlayer1.Position = MediaPlayer1.Length then Listbox1.ItemIndex := Listbox1.ItemIndex + 1; PlaySong;
if random1.Checked = true then Randomize; ListBox1.ItemIndex := Random(ListBox1.Items.Count-1)+1; PlaySong; exit; end;
procedure TForm1.Random1Click(Sender: TObject); begin Randomize; ListBox1.ItemIndex := Random(ListBox1.Items.Count-1)+1; playsong; end;
random virker men når sang er færdig og den skal vælge en ny random sang så begynder programmet at "fryse" mens den mærker den næste og næste og næste sang. hvad gøre jeg forkert?
Synes godt om
Slettet bruger
19. april 2004 - 22:08#7
Den kører PlaySong, hver gang MediaPlayeren laver en Notify... Prøv at sætte begin/end omkring koden:
procedure TForm1.MediaPlayer1Notify(Sender: TObject); begin if MediaPlayer1.Position = MediaPlayer1.Length then begin Listbox1.ItemIndex := Listbox1.ItemIndex + 1;
//PlaySong; <- PlaySong blev kørt før den vælger en ny tilfældig sang.
if random1.Checked = true then //Randomize <- Skal ikke køres, hver gang den vælger en tilfældig sang ListBox1.ItemIndex := Random(ListBox1.Items.Count-1)+1; PlaySong; end; end;
Du skal også have Randomize i FormActivate, for den skal kun køres en gang.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.