![]() |
Playlist --> nicht Pfad, sondern Name anzeigen
Hallo DP'ler :hi:
In einem Mediplayer möchte ich eine Playlist einbauen. Das Eintragen in eine Listbox etc. klappt super, auch die Wiedergabe funktioniert. Nur hab ich es bis jetzt so gelöst, dass ich dort den kompletten Pfad zur Datei drin stehen hab, und das sieht doch etwas unschön aus. Habt ihr da eine Idee wie ich das besser machen kann, also z.B. nur den Dateinamen an sich oder den ID3-Tag? wenn ich das mache muss der Pfad ja irgendwo gespeichert werden, und genau das macht mir Kopfzerbrechen :D |
Re: Playlist --> nicht Pfad, sondern Name anzeigen
Lege die kompletten Pfade in einer TStringlist ab, extrahiere dann aus dieser Stringlist die Dateinamen und schreibe diese in die Listbox.
|
Re: Playlist --> nicht Pfad, sondern Name anzeigen
Oder noch besser: Erstelle dir eine eigene Klasse mit Properties wie Pfad, Dateiname, Titel Interpret, Dauer, etc., füge eine Methode GetDataFromFilename hinzu und zeige in der View die gewünschten Dinge an.
|
Re: Playlist --> nicht Pfad, sondern Name anzeigen
@ Tormentor: Gute Idee, die Funktion dazu war ExtractFileName(), oder?
@ Gausi: Das hört sich sehr gut an, aber wie mach ich das denn? Hab noch nie was mit Klassen zu tun gehabt :D Kannst du mir dazu ein Beispiel geben oder ein verständliches Tutorial? //Edit: Hab grad das Tut von Luckie gefunden und schau es mir mal an. Gegen ein weiteres Beispiel hab ich aber nichts einzuwenden :D |
Re: Playlist --> nicht Pfad, sondern Name anzeigen
Ein Beispiel, wie so eine AudioFile-Klasse aussehen könnte, habe ich mal in der
![]() |
Re: Playlist --> nicht Pfad, sondern Name anzeigen
Es geht noch viel Einfacher, z.b.:
Delphi-Quellcode:
Wenn es nur um einen Dateinamen geht, wenn du noch mehr Infos speichern möchtes zu einem Eintrag würde ich einfach eine eigene Klasse erzeugen und die dann in die TSTringList einfügen und fertig.
procedure addPlaylisteItem(const aFileName:String);
begin Listbox1.Items.addObject(extractFileName(aFileName),TObject(aFileName); end; function GetPlayListenItem(const aItemIndex:Integer):String; begin result:=String(Listbox1.items.object[aItemIndex]); end; der Vorteil du hast nur noch eine Liste und nicht zwei. mein Beispiel von Oben kann sehr leicht angepasst werden dafür.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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