Es geht auch direkt, da ListBox.Items und OpenDialog.Files beide vom Typ TStrings sind. Also kann auch direkt zugewiesen werden:
Delphi-Quellcode:
ListBox1.Items.Clear;
ListBox1.Items.AddStrings(OpenDialog1.Files);
Jürgen
[/edit]Nachtrag
Zitat von
freak4fun:
Aber da kann er nicht das ExtractFileName anwenden. freak
Zitat von
mlspider:
Genau darum ging es mir...
Sorry, nach den vielen Schleifen habe ich das nicht mehr gelesen. Aber vielleicht geht es doch noch schneller, weil ja nach einem OpenDialog alle Dateien aus dem gleichen Verzeichnis stammen. Damit kannst Du aus der ersten Datei das Verzeichnis bestimmen, damit die Länge des Pfades und mit einem Copy oder Delete die einzelnen Files-Einträge kürzen.
Delphi-Quellcode:
var i0, i1: Integer;
begin
AudioPlayList.ListBox1.Items.Clear;
// ich setze voraus, dass mindestens 1 Datei ausgewählt wurde
i0 := Length(ExtractFileDir(OpenDialog1.Files[0]));
// ich erinnere mich nicht mehr, ob '\' enthalten ist; ggf. i0+1 verwenden
for i1 := 0 to OpenDialog1.Files.Count - 1
do AudioPlayList.ListBox1.Items.Add( Copy(OpenDialog1.Files[i1], i0+1, 255));
end;
Ich vermute sehr stark, das geht schneller, weil ExtractFileName bei jeder Datei das Ende des Pfades suchen muss, während dies nur einmal nötig ist.
Jürgen
PS. Sorry für mein Versehen!