![]() |
Playliste merkt sich Pfade nicht
Als erstes, ich weis nicht wonach ich bei meinem Problem suchen soll, also mach ich mal ein neuen Thread.
Ich hab also bei meinem mp3 Player folgendes Problem, ich lad mir meine Songs mit
Delphi-Quellcode:
in die Playliste, und spiele sie ab, alles kein Problem soweit geht alles.
if not Form1.Opendialog1.Execute then Exit;
for I := 0 to Form1.OpenDialog1.Files.Count - 1 do Form1.Playlist.Items.Add.Caption := ExtractFileName(Form1.Opendialog1.Files.Strings[i]); Nur wenn ich einen neuen Aufruf zum einfügen mache werden die neuen auch eingefügt, nur verlieren die Daten vorher Ihrer Pfad zuweisung und können nicht mehr abgespielt werden. Ich möchte allerdings halt nur die FileNames in der Liste haben und nicht die kompletten Pfadangaben dazu.Das heist er soll sich also die Pfadangaben vorheriger Dateien merken wenn ich aus einem anderen Ordner Dateien einfüge. Also schonmal Danke für jeden Tipp, oder so. |
Re: Playliste merkt sich Pfade nicht
Du musst dir die kompletten Dateinamen irgendwo merken, z.B. in ner TStringList.
|
Re: Playliste merkt sich Pfade nicht
Aja Danke, das werd ich wohl machen.
|
Re: Playliste merkt sich Pfade nicht
ExtractFileName gibt dir den Dateinamen zurück. Also hast du nur die Namen, nicht aber die Pfade.
Hierzu musst du die Pfade aber noch in einer String Liste oder einem Dynamische Array Speichern Wenn du deine Playlist aber mal Sortieren willst, vergiss nicht, das Arra auch entsprechen zu sortieren |
Re: Playliste merkt sich Pfade nicht
Ich würde die Object Eigenschaft von den TStringlist.Items verwenden.
das geht ganz einfach:
Delphi-Quellcode:
Müsste so gehen. Der Vorteil du hast nur noch eine liste und musst nicht immer zwei listen durchsuchen.
TPlaylistItem = class
FileName:String; end; var Playlist:TStringlist; Procedure addFileName(Const aFileName:String); var PlaylistItem:TPlaylistItem; begin PlaylistItem:=TPlaylistItem.Create; PlaylistItem.Filename:=aFileName Playlist.addobject(ExtractFileName(aFileName),playlistitem); end; function GetPlaylistITem(const aItemIndex:Integer):String; begin if playlist.objects[aItemindex] is TPlaylistItem then result:=TPlaylistItem(playlist.objects[aItemindex]).FileName else result:=''; end; Die Klasse TPlaylistItem kannst du natürlich nach beliebigen erweitern ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz