![]() |
Musik Liste geht nich
Hallo,
so hab da ma versucht nen Programm zu schreiben dass die gesamte musik die in C:\Dokumente und Einstellungen\* ist in eine Liste (Checklistbox2) schreiben soll und dann alle man auf "check" setzt abspielt nur leider spielt er immer nur den letzten track ab.... so holt es die Musik:
Delphi-Quellcode:
so spielt der ab:
begin
if DirectoryExists('C:\Dokumente und Einstellungen\') then FindFiles ('C:\Dokumente und Einstellungen\', '*.mp3', True, CheckListBox2.Items) else CheckListBox2.Items.Text:='Keine .mp3 Dateien in C:\Dokumente und Einstellungen'; end;
Delphi-Quellcode:
Hoffe könnt mir helfen!
procedure TForm1.Button2Click(Sender: TObject);
Var i:integer; begin for i:=0 to CheckListBox2.Items.Count do begin if (CheckListBox2.Checked[i] = true) then {Fehler liegt in dieser Schleife....weiss nich wie man die Schleife "Pausiert"} begin a:=CheckListBox2.Items.Strings[i]; {a ist ein string der für den Pfad der Datei steht} MediaPLayer1.FileName:=a; MediaPlayer1.Open; MediaPlayer1.Play; end end; end; |
Re: Musik Liste geht nich
ALs was ist "a" deklariert?
Ansonsten würde ich es so machen:
Delphi-Quellcode:
Ich der ShellExecute-Anweisung gibt es irgentwo eine UNSCHÖNHEIT.
// UNGETESTET, einfach aus dem Gedächtnis aufgeschrieben
{ Vorgang: 1.StringListe erstellen 2. CheckListBox durch Schleife jagen, "checked"-einträge in StringList aufnehmen 3. am ende StringListe als m3u speichern und executen } var sl: TStringList; i: Integer; begin sl := TStringList.Create; try for i := 0 to CheckListBox1.Items.Count - 1 do begin if (CheckListBox2.Checked[i] = true) begin sl.Add(CheckListBox2.Items[i]); end; end; finally sl.SaveToFile('C:\Liste.m3u'); ShellExecute(Application.Handle 'open', PChar('C:\Liste.m3u'), Nil, Nil, SW_NORMAL); sl.Free; end; end; Habe mal was darüber gelesen, weis es aber nicht mehr. |
Re: Musik Liste geht nich
a ist ein string
in ihm wird der pfad einer datei gespeichert um diese aufzurufen. |
Re: Musik Liste geht nich
funzt nich:
[Fehler] Unit1.pas(84): Undefinierter Bezeichner: 'sl' [Fehler] Unit1.pas(86): Undefinierter Bezeichner: 'i' [Fehler] Unit1.pas(90): Operator oder Semikolon fehlt [Fehler] Unit1.pas(90): Operator oder Semikolon fehlt [Fehler] Unit1.pas(92): EXCEPT oder FINALLY erwartet [Fehler] Unit1.pas(93): 'END' erwartet, aber 'FINALLY' gefunden [Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst; type TForm1 = class(TForm) Button1: TButton; CheckListBox1: TCheckListBox; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings); Var FindRec: tSearchRec; Begin // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist // dann raus If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then Exit; // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen // (Oder die Funktion IncludeTrailingPathDelimiter aus der Unit SysUtils.pas verwenden) If aPath[Length (aPath)] <> '\' Then aPath := aPath + '\'; // Im aktuellen Verzeichnis nach der Datei suchen If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then // ...Ergebnis in die Stringlist einfügen aResult.Add (aPath + FindRec.Name); Until FindNext (FindRec) <> 0; FindClose (FindRec); // Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus If Not aWithSub Then Exit; // In Unterverzeichnissen weiter suchen If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then Repeat If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then // Feststellen, ob es sich um ein Verzeichnis handelt If Boolean (FindRec.Attr and faDirectory) Then // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion) FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult); Until FindNext (FindRec) <> 0; FindClose (FindRec); End; procedure TForm1.Button1Click(Sender: TObject); begin if DirectoryExists('C:\Dokumente und Einstellungen\') then FindFiles ('C:\Dokumente und Einstellungen\', '*.mp3', True, CheckListBox1.Items) else CheckListBox1.Items.Text:='Keine .mp3 Dateien in C:\Dokumente und Einstellungen'; end; procedure TForm1.Button2Click(Sender: TObject); sl: TStringList; i: Integer; begin sl := TStringList.Create; try for i := 0 to CheckListBox1.Items.Count - 1 do begin if (CheckListBox1.Checked[i] = true) then sl.Add(CheckListBox2.Items[i]); end; finally sl.SaveToFile('C:\Liste.m3u'); ShellExecute(Application. 'open', PChar('C:\Liste.m3u'), Nil, Nil, SW_NORMAL); sl.Free; end; end. |
Re: Musik Liste geht nich
Als erstes oben in die USES ShellAPI.
Sieht dann so aus:
Delphi-Quellcode:
Du musst dir den COde auch erstmal ansehen, bevor du blind herkopierst ;)
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, ShellAPI; Dann:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var // VAR hat gefehlt! sl: TStringList; i: Integer; begin sl := TStringList.Create; try for i := 0 to CheckListBox1.Items.Count - 1 do begin if (CheckListBox1.Checked[i] = true) then sl.Add(CheckListBox1.Items[i]); end; finally sl.SaveToFile('C:\Liste.m3u'); ShellExecute(Application. 'open', PChar('C:\Liste.m3u'), Nil, Nil, SW_NORMAL); sl.Free; end; |
Re: Musik Liste geht nich
sry dat ich nich ganz so aufmerksam duchgelesen hab :oops:
aufjedenfall schon ma DANKE hat allerdings immer noch probs mit einer Zeile mit der ich mich überhaupt nicht auskenne:
Delphi-Quellcode:
[Fehler] Unit1.pas(94): Bezeichner erwartet, aber String-Konstante gefunden
procedure TForm1.Button2Click(Sender: TObject);
var sl: TStringList; i: Integer; begin sl := TStringList.Create; try for i := 0 to CheckListBox1.Items.Count - 1 do begin if (CheckListBox1.Checked[i] = true) then sl.Add(CheckListBox1.Items[i]); end; finally sl.SaveToFile('C:\Liste.m3u'); ShellExecute(Application. 'open', PChar('C:\Liste.m3u'), Nil, Nil, SW_NORMAL); {<-------------Probs} sl.Free; end; end; end. [Fehler] Unit1.pas(94): Inkompatible Typen: 'Integer' und 'PAnsiChar' SRY aber damit kenn ich mich wirklich nich aus...arbeite mit delphi seit mittwoch -.- |
Re: Musik Liste geht nich
Liste der Anhänge anzeigen (Anzahl: 2)
Hier eine fertige Lösung schnell geschrieben, sie funktioniert und öffnet den Standard Media-Player mit einer in m3u-format übergebenen AUTOMATISCH gespeichertn Liste.
Die Liste wird in dem ausgewähltem Verzeichnis abgelegt. Nach Programmende wird die gelöscht. (ANHANG) |
Re: Musik Liste geht nich
danke...ma schaun was ich falsch hatte...
ahh...handel fehlte aber 2 frage hab ich noch... WAS MACHT SL.FREE
Delphi-Quellcode:
und sDir ist immer eine Var oder muss ich die erst setzen?
finally
sl.SaveToFile(sDir + '\Liste.m3u'); ShellExecute(Application.Handle, 'open', PChar(sDir + '\Liste.m3u'), Nil, Nil, SW_NORMAL); sl.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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