Einzelnen Beitrag anzeigen

scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#14

Re: Inhalt der Listenbox in einer Schleife fassen???

  Alt 25. Jan 2004, 11:55
Wie gesagt du kannst die anderen beiden Zahlen auch automatisch einfügen.
Hier mal die kurze Variante, ohne FindFirst() / FindNext:

Delphi-Quellcode:
procedure TForm1.ListBox2Click(Sender: TObject);
var track : array [1..25] of String;
    x : Integer;
begin
  if RadioButton1.Checked then begin
    If (ListBox1.ItemIndex > -1) and // Prüft, ob überhaupt etwas in den
       (ListBox3.ItemIndex > -1) then // Listboxen ausgewählt wurde
    for x := 1 to 25 do
      track[x] := 'mp3' + '/'
                + 'cds_und_alben' + '/'
                + Format('%0:2.2d',[ListBox1.ItemIndex+1]) + '/'
                + Format('%0:2.2d',[ListBox3.ItemIndex+1]) + '/'
                + Format('%0:2.2d', [x]) + '.mp3';

    if (ListBox1.ItemIndex > -1) and
       (ListBox3.ItemIndex > -1) and
       (Listbox2.ItemIndex > -1) then begin // Hier wird auch noch die Song-Listbox geprüft
          MediaPlayer1.FileName := ExtractFilePath(ParamStr(0)) + // Den Pfad der Exe nicht vergessen
                                   track[Listbox2.ItemIndex+1];
          MediaPlayer1.Open;
          Trackbar1.Position := 0;
          Trackbar1.Max := MediaPlayer1.TrackLength[1];
          ProgressBar1.Max := MediaPlayer1.TrackLength[1];

        end;
  end;
end;
Jezt vielleicht mal eine kurze Erklärung:
1. Format, sorgt dafür, wie der Name schon sagt, das z.B. eine Zahl auf eine bestimmte Art und Weise als Text umgewandelt, ausgegeben und formatiert wird. Mit dem '%0:2.2d' gibt man an, das es eine Ganzzahl (d) ist, die immer mindestens zwei Stellen (2.2) hat, die %0 steht für die Zahl, man kann in den Eckklammern auch mehrere Zahlen angeben, die dann mit %1, %2 usw. geziehlt formatiert werden können, oder alle zusammen nur mit %, mehr dazu steht ja in der Delphi-Hilfe.

2. ListboxX.ItemIndex steht für den Eintrag, den der Benutzer ausgewählt hat, wobei die Zählung bei 0 beginnt, also muss ich ein +1 anhängen, weil deine Ordner ja mit 1 anfangen.

3. Ist ListboxX.ItemIndex -1 dann hat der Benutzer gar keinen Eintrag ausgewählt und wir brauchen erst gar nicht mit der Verarbeitung anfangen.
  Mit Zitat antworten Zitat