AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Musik Liste geht nich

Ein Thema von jonsen2.0.0.9 · begonnen am 5. Dez 2009 · letzter Beitrag vom 5. Dez 2009
Antwort Antwort
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#1

Musik Liste geht nich

  Alt 5. Dez 2009, 19:59
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:
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;
so spielt der ab:
Delphi-Quellcode:
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;
Hoffe könnt mir helfen!
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#2

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 20:25
ALs was ist "a" deklariert?

Ansonsten würde ich es so machen:

Delphi-Quellcode:
// 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;
Ich der ShellExecute-Anweisung gibt es irgentwo eine UNSCHÖNHEIT.
Habe mal was darüber gelesen, weis es aber nicht mehr.
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#3

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 20:28
a ist ein string

in ihm wird der pfad einer datei gespeichert um diese aufzurufen.
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#4

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 20:42
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.
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#5

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 20:48
Als erstes oben in die USES ShellAPI.

Sieht dann so aus:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst, ShellAPI;
Du musst dir den COde auch erstmal ansehen, bevor du blind herkopierst

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;
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#6

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 20:54
sry dat ich nich ganz so aufmerksam duchgelesen hab

aufjedenfall schon ma DANKE

hat allerdings immer noch probs mit einer Zeile mit der ich mich überhaupt nicht auskenne:

Delphi-Quellcode:
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): Bezeichner erwartet, aber String-Konstante gefunden
[Fehler] Unit1.pas(94): Inkompatible Typen: 'Integer' und 'PAnsiChar'

SRY aber damit kenn ich mich wirklich nich aus...arbeite mit delphi seit mittwoch -.-
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#7

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 21:02
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)
Angehängte Dateien
Dateityp: zip findmp3_778.zip (9,7 KB, 5x aufgerufen)
Dateityp: exe project1_155.exe (573,5 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#8

Re: Musik Liste geht nich

  Alt 5. Dez 2009, 21:03
danke...ma schaun was ich falsch hatte...


ahh...handel fehlte


aber 2 frage hab ich noch...

WAS MACHT SL.FREE

Delphi-Quellcode:
finally
  sl.SaveToFile(sDir + '\Liste.m3u');
  ShellExecute(Application.Handle, 'open',
   PChar(sDir + '\Liste.m3u'), Nil, Nil, SW_NORMAL);
  sl.Free;
 end;
und sDir ist immer eine Var oder muss ich die erst setzen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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