Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MP3 Player Playlist (https://www.delphipraxis.net/6555-mp3-player-playlist.html)

Matzespens 15. Jul 2003 07:25


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

Luckie 15. Jul 2003 07:32

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.

Matzespens 15. Jul 2003 07:42

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

Matzespens 15. Jul 2003 15:12

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:
 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;
Vielleicht könnte ich ja noch einen Tipp bekommen.

Danke im Voraus

Matze

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

daniel-volk 17. Jul 2003 13:57

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.

Luckie 17. Jul 2003 15:02

Re: MP3 Player Playlist
 
Zitat:

Zitat von daniel-volk
VielleiAußer einer unsichtbaren MemoBox fällt mir auch nichts Besseres ein.

Mir aber: TStringList oder ein dynamisches Array of Strings. Wobei man sich bei letzteren um das Speiochern selber kümmern muß. Mit AssignFile und seinen Kumpels (Reset, writeln) aber auch kein wirkliches Problem.

So und das Problem mit deinem OpenDialog: Die Eigenschaft Files ist vom Typ TStrings, also eine StringListe.
Delphi-Quellcode:
if OpenDialog1.Execute then
begin
  for i := 0 to OpenDialog1.Files.Count-1 do
    ListBox1.Items.Add(OpenDialog1.Files[i]);
end;
Dann solltest du alle ausgewählten Dateien in der Listbox haben.

UnixX 26. Jul 2003 21:38

Re: MP3 Player Playlist
 
Delphi-Quellcode:
if OpenDialog1.Execute then
begin
for i := 0 to OpenDialog1.Files.Count-1 do
ListBox1.Additem(extractfilename(OpenDialog1.Files[i]),nil);
end;
:D

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

[edit=Daniel B]BB-Codes und SMileys eingeschaltet. Mfg, Daniel B[/edit]

Luckie 26. Jul 2003 22:04

Re: MP3 Player Playlist
 
Was soll denn das AddItem und dann übergibst du als Objekt nil?

UnixX 27. Jul 2003 00:33

Re: MP3 Player Playlist
 
Ich meinte

Delphi-Quellcode:
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;
Dann werden die Dateinamen ohne Pfad in der ListBox angezeigt.
:oops: :!: :wink:

[edit=Daniel B]Delphi-Tags eingefügt und Code formatiert. Mfg, Daniel B[/edit]

Luckie 27. Jul 2003 02:41

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 18:39 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