![]() |
Pfad aus ListBox für Bass.dll auslesen
hallo, ich arbeite im mom an einem mp3 player als schulprojekt und habe (nur) noch bis ende januar zeit..
in form2 habe ich eine listbox, in der alle lieder mit ner opendialog geöffnet werden MP ist der BassDllPlayer mit direkter pfadangabe habe ich es schon geschafft ein lied abzuspielen, jedoch weiß ich nicht genau wie ich den pfad aud ner listbox auslese...
Delphi-Quellcode:
procedure TForm1.PlayClick(Sender: TObject);
begin MP.play(form2.ListA.Items.GetNamePath); //MP.play('C:\Dokumente und Einstellungen\Peppi\Desktop\Musik\No Signs.mp3'); bar.Max := MP.length; end; danke |
Re: Pfad aus ListBox für Bass.dll auslesen
moin!
form2.ListA.Items.GetNamePath sollte form2.ListA.Items.Text heißen... damit hast du immer den im moment selektierten eintrag der listbox. Gruß Reli |
Re: Pfad aus ListBox für Bass.dll auslesen
habs probiert, dann bringt er mir aber den fehler Inkompatible Typen: 'String' und TStrings'
ich möchte dann später auch dass er nicht nur ein lied abspielt, sondern fortlaufend alle lieder in der liste. wie realisiere ich das denn am besten? kann ich da in ein dynamisches array den pfad reinschreiben und dann im player auslesen? |
Re: Pfad aus ListBox für Bass.dll auslesen
welche aufrufparameter hat denn play? ich habe gerade den quelltext nicht hier - bin auf der arbeit.
wenn er nen tstrings erwartet dann will er wohl schon ne liste von liedern die er spielen soll. dann übergibst du einfach die Listbox.Items |
Re: Pfad aus ListBox für Bass.dll auslesen
also der player will nen string...
Delphi-Quellcode:
mp.play(filename:string);
|
Re: Pfad aus ListBox für Bass.dll auslesen
also das mit dem abspielen aus der listbox hab ich jetzt hinbekommen :)
nur müsste es jetzt och so funktionieren, dass ich mehrere nacheinander spielen kann und nicht nur das ausgewählte, ebenso soll ich ja auf nen klick auf nächstes lied und vorheriges leid eben diese lieder spielen können... werd mir mal ein paar gedanken machen, wenn ihr was wisst wär ich euch auch sehr dankbar!
Delphi-Quellcode:
procedure TForm1.PlayClick(Sender: TObject);
var pfad:string; begin pfad := form2.ListA.Items.Strings[form2.listA.itemindex]; MP.play(pfad); //MP.play('C:\Dokumente und Einstellungen\Peppi\Desktop\Musik\No Signs.mp3'); bar.Max := MP.length; end; |
Re: Pfad aus ListBox für Bass.dll auslesen
ah okay...
ja dann merk dir doch den momentanen itemindex in ner membervariable und spiel dann bei nem klick auf nächstes lied die membervariable mit + 1 ab ... andersrum halt mit -1 und dann hast es fertig :o) |
Re: Pfad aus ListBox für Bass.dll auslesen
stimmt, werde ich gleich mal probieren :-)
und wenn ein lid zu ende ist und das nächste abgespielt werden soll werde ich dann auch die variable um 1 hochzählen :-) |
Re: Pfad aus ListBox für Bass.dll auslesen
also das hat soweit schon ganz gut geklappt, nur wenn ich zum letzten, bzw wieder zum ersten lied springe stürzt er ab...
ich habe eine extra unit procedures in der die procedure MPplay ist:
Delphi-Quellcode:
der play button
procedure MPPlay(PlayMp:Boolean);
var pfad :string; begin if form2.ListA.Count <> 0 then begin pfad := form2.ListA.Items.Strings[form2.listA.itemindex]; form1.MP.play(pfad); form1.bar.Max := form1.MP.length; form1.timer1.Enabled := true; end; end;
Delphi-Quellcode:
vor
procedure TForm1.PlayClick(Sender: TObject);
var pfad:string; begin procedures.MPPlay(true); end;
Delphi-Quellcode:
und zurück
procedure TForm1.vorClick(Sender: TObject);
var pfad:string; begin form2.ListA.ItemIndex:=form2.ListA.ItemIndex+1; pfad := form2.ListA.Items.Strings[form2.listA.itemindex+1]; procedures.MPPlay(true); end;
Delphi-Quellcode:
procedure TForm1.rueckClick(Sender: TObject);
var pfad:string; begin form2.ListA.ItemIndex:=form2.ListA.ItemIndex-1; pfad := form2.ListA.Items.Strings[form2.listA.itemindex-1]; procedures.MPPlay(true); bar.Max := MP.length; end; |
Re: Pfad aus ListBox für Bass.dll auslesen
vor und zurück habe ich jetz so abgeändert, dass das programm nicht mehr abstürtzt. scheint so auch prima zu funktioneren...
vor
Delphi-Quellcode:
zurück
procedure TForm1.vorClick(Sender: TObject);
var pfad:string; begin if (form2.ListA.Count <> 0) and (form2.ListA.ItemIndex <> -1) then begin if form2.ListA.ItemIndex = form2.ListA.Count -1 then form2.ListA.ItemIndex := 0 else if form2.ListA.ItemIndex <> form2.ListA.Count-1 then form2.ListA.ItemIndex := form2.ListA.ItemIndex+1; form2.ListB.ItemIndex := form2.ListA.ItemIndex; end else if form2.ListA.ItemIndex = -1 then begin form2.ListA.ItemIndex := 0; form2.ListB.ItemIndex := form2.ListA.ItemIndex; end; procedures.MPPlay(true); end;
Delphi-Quellcode:
procedure TForm1.rueckClick(Sender: TObject);
var pfad:string; begin if form2.ListA.Count <> 0 then if form2.ListA.ItemIndex = 0 then form2.ListA.ItemIndex := form2.ListA.Count -1 else if form2.ListA.ItemIndex <> 0 then form2.ListA.ItemIndex := form2.ListA.ItemIndex -1; form2.ListB.ItemIndex := form2.ListA.ItemIndex; if form2.ListA.ItemIndex = -1 then begin form2.ListA.ItemIndex:=0; form2.ListB.ItemIndex:=form2.ListA.ItemIndex; end; procedures.MPPlay(true); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz