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.