Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Playliste merkt sich Pfade nicht (https://www.delphipraxis.net/100065-playliste-merkt-sich-pfade-nicht.html)

iron 21. Sep 2007 19:02


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:
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]);
in die Playliste, und spiele sie ab, alles kein Problem soweit geht alles.

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.

jakobwenzel 21. Sep 2007 19:05

Re: Playliste merkt sich Pfade nicht
 
Du musst dir die kompletten Dateinamen irgendwo merken, z.B. in ner TStringList.

iron 21. Sep 2007 23:07

Re: Playliste merkt sich Pfade nicht
 
Aja Danke, das werd ich wohl machen.

Cyberbob 21. Sep 2007 23:14

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

mimi 22. Sep 2007 11:48

Re: Playliste merkt sich Pfade nicht
 
Ich würde die Object Eigenschaft von den TStringlist.Items verwenden.

das geht ganz einfach:
Delphi-Quellcode:
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;
Müsste so gehen. Der Vorteil du hast nur noch eine liste und musst nicht immer zwei listen durchsuchen.
Die Klasse TPlaylistItem kannst du natürlich nach beliebigen erweitern !


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz