![]() |
MP3 Player Playlist
Hallo Leute,
ich habe vor kurzem mit Delphi angefangen und für den Amfang mal ein MP3 Player programmiert. Er läuft auch ganz gut, nur eines stört mich. Ich habe meine Playlist über eine Listbox dargestellt und lasse diese über den Opendialog einlesen. Jetzt habe ich aber in meiner Listbox den kompletten Pfad der Files stehen und ich hätte gerne nur die FileNames. Für einen Tipp wäre ich dankbar. Grüße Matze |
Re: MP3 Player Playlist
ExtractFilename. Aber denkdran, um die Dateien abspielen zu können, mußt du den kompletten Pfad angeben, das heißt du mußt die Pfade noch wo anders speichern (dynamisches Array) und dieses mit dem Inhalt der Listbox verknüpfen.
Kein Multimediaproblem, deswegen geht die Reise jetzt nacht VCL. |
Re: MP3 Player Playlist
:mrgreen:
Super danke für die schnelle Antwort, dann werde ich mal sehen ob ich mich da irgendwie durcharbeiten kann. Grüße Matze |
Re: MP3 Player Playlist
:(
Ich bekomme es irgendwie nicht hin, er speichert mir nur den Kompletten String der Open Files in meinen Array, wahrscheinlich weil ich keine schleife gesetzt habe. Die habe ich nicht hinbekommen. Warnung lautet immer Schleifenvariable muss eine einfache lokale Variable sein! Hier mal ein kurzer Auszug aus meinem Quelltext:
Delphi-Quellcode:
Vielleicht könnte ich ja noch einen Tipp bekommen.
if OpenDialog1.Execute = True then begin
if OpenDialog1.Files.Count > 0 then begin // Auslesen der Dateien von OpenDialog1 in die ListBox //Listbox1.Items.Text:= Opendialog1.Files.Text; // if opendialog1.Files.Count > 0 then begin [b]//for Datei := 0 to High(A) do; SetLength(A, 1000); A[Datei] := opendialog1.Files.Text; Listbox1.Items[Datei] := ExtractFilename(A[DateiID]); //Inc(Datei); //end;[/b] DateiID := 0; // Es wird der erste Titel ausgewählt... !!! //Mediaplayer1.FileName := Listbox1.Items[0]; // Hier wird der erste Eintrag aus der Liste dem Filename zugewiesen mediaplayer1.FileName := A[0]+ Listbox1.Items[0]; end else begin Mediaplayer1.FileName := OpenDialog1.Filename; end; Mediaplayer1.Open; btnPlay.Enabled := True; Danke im Voraus Matze [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Re: MP3 Player Playlist
Vielleicht probierst du es so, dass du alle Filenames in eine MemoBox schreibst. Lediglich für den Anwender extrahierst du dann den Dateinamen in die ListBox.
Du kannst die ListBox dann auch verwenden, um z.B. ein Item zu löschen, indem du dir den Indexwert des Items nimmst und diese Zeile dann im Memo-Feld löschst. Genauso kannst du alle anderen Funktionen anwenden. Außer einer unsichtbaren MemoBox fällt mir auch nichts Besseres ein. Und so kannst du die Playlist dann auch einfach speichern, indem du nur die MemoBox als Textdatei (vielleicht mit anderer Endung) speicherst. |
Re: MP3 Player Playlist
Zitat:
So und das Problem mit deinem OpenDialog: Die Eigenschaft Files ist vom Typ TStrings, also eine StringListe.
Delphi-Quellcode:
Dann solltest du alle ausgewählten Dateien in der Listbox haben.
if OpenDialog1.Execute then
begin for i := 0 to OpenDialog1.Files.Count-1 do ListBox1.Items.Add(OpenDialog1.Files[i]); end; |
Re: MP3 Player Playlist
Delphi-Quellcode:
:D
if OpenDialog1.Execute then
begin for i := 0 to OpenDialog1.Files.Count-1 do ListBox1.Additem(extractfilename(OpenDialog1.Files[i]),nil); end; [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] [edit=Daniel B]BB-Codes und SMileys eingeschaltet. Mfg, Daniel B[/edit] |
Re: MP3 Player Playlist
Was soll denn das AddItem und dann übergibst du als Objekt nil?
|
Re: MP3 Player Playlist
Ich meinte
Delphi-Quellcode:
Dann werden die Dateinamen ohne Pfad in der ListBox angezeigt.
var
I: integer; begin if opendialog1.Execute then for i:=0 to opendialog1.Files.Count -1 do begin listbox1.AddItem(Extractfilename(opendialog1.Files.Strings [i]),nil ); end; end; :oops: :!: :wink: [edit=Daniel B]Delphi-Tags eingefügt und Code formatiert. Mfg, Daniel B[/edit] |
Re: MP3 Player Playlist
Und warum muß da unbedingt AddItem benutz werden? Es sollen doch nur die Dateinamen in die Listbox, keine weiteren Objekte zu dem Items gespeichertwerden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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