[ Tare_TDI @ 06.04.2009. 20:13 ] @
pozdrav, radim maturski iz programiranja. tema je audio player i ja sam poceo da radim i dosao sam donekle, ali poceli su problemi:
1 problem je dugme previous i next.ne znam zasto nece da radi.evo cod:
Code:
 
var ind,i:integer;
    pj:string;
begin
if mp1.FileName<>'' then
begin
pj:=mp1.FileName;
for i:=0 to pjesme.Count-1 do
   if pj=form2.ListBox2.Items.Text[i] then ind:=i;
if ind=0 then mp1.filename:=(form2.ListBox2.items[pjesme.count])
else mp1.filename:=(form2.ListBox2.items[ind-1]);
dec(ind);
form2.ListBox1.Selected[ind]:=True;
mp1.open;
mp1.play;
end;

2) problem je sto na dugmetu repeat imam 3 opcije (popup menu), ali popup menu radi sa desnim klikom a ja bih da ga pozivam na lijevi klik.
3) problem tice se brisanja pjesama iz playliste.

Code:

procedure TForm2.Button4Click(Sender: TObject);
var i,j,rb1,pom,ind:integer;
begin
if listbox1.Count=0 then showmessage('mp3 lista je prazna') else pom:=1;
if pom=1 then
 begin
    for i:=0 to pjesme.Count- 1 do
       if ListBox1.Selected[i]=True then
       pjesme.Delete(i);
     listbox1.clear;
    listbox2.Clear;
    rb1:=1;
    for j:=0 to pjesme.Count-1 do
      begin
        listbox2.Items.add(pjesme[j]);
        Listbox1.Items.Add(inttostr(rb1)+'.'+extractfilename(pjesme[j]));
        inc(rb1);
      end;
 end;
end;

znaci kada kliknem da dugme delete on provjerava da li ima pjesama u playlisti, ako je pjesma selektovana da je izbrise i da ponovo doda ostale sa rednim brojem, a ako je kliknuto na delete a nije selektovano da kaze u mesage nisi selektovao
unparijed hvala
[ savkic @ 07.04.2009. 00:58 ] @
> 1 problem je dugme previous i next.ne znam zasto nece da radi.evo cod:

Jedna mogućnost je da upoređuješ FileName sa stavkom listboxa koja sadrži RedniBr + FileName. Drugo promenljiva ind nije inicijalizovana (kompajler ti je to sasvim sigurno prijavio, pobrini se da sve warninge i hintove kompajlera ispoštuješ). Inače za pretragu listboxa možeš koristiti IndexOf. Ako ništa ne pomogne, onda iz debugera idi redom i proveravaj, da li se određuje naredna pesma (koju treba pustiti), da li se ta pesma doista startuje, ako ne zašto ne itd.

> 2) problem je sto na dugmetu repeat imam 3 opcije (popup menu), ali popup menu radi sa desnim klikom a ja bih da ga pozivam na lijevi klik.

Dodaj on MouseDown event, proveri da li je pritisnut levi taster i pozovi Popup metodu popup menija:
PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);

> znaci kada kliknem da dugme delete on provjerava da li ima pjesama u playlisti, ako je pjesma selektovana da je izbrise i da ponovo doda
> ostale sa rednim brojem, a ako je kliknuto na delete a nije selektovano da kaze u mesage nisi selektovao

Šta od toga u tvom kodu ne radi? Po meni zadatak treba obaviti iz dva dela,
1) brisanje stavke
2) poziv metode koja vrši renumaraciju stavki (ta metoda ti svakako treba kada inicijalno puniš listu).
[ Mythbuster @ 11.04.2009. 20:18 ] @
i ja pravim svoj player, ali ne znam kako da napravim playlistu, jer ovaj moj moze da pusta samo po jednu pesmu...
ako bi mogao da mi das kod, i da mi kazes koje komponente treba da koristim...