![]() |
ExtractFileName bei ListBox?
Delphi-Quellcode:
kann nicht funktionieren, da TString und String inkompatibel sind. Wie geht es richtig?
AudioPlayList.ListBox1.Items:=ExtractFileName(OpenDialog1.Files);
|
Re: ExtractFileName bei ListBox?
Versuchs mal mit
Delphi-Quellcode:
;)
AudioPlayList.ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files));
MfG freak |
Re: ExtractFileName bei ListBox?
Ebenfalls inkompatibel. (TString und String)
|
Re: ExtractFileName bei ListBox?
if AudioPlayList.ListBox1.Items is TStrings then muss das gehen.
Sag doch mal genauer, was für Fehlermeldungen kommen. EDIT: aaaahhhh.... du musst die dateinamen alle einzeln extrahieren. |
Re: ExtractFileName bei ListBox?
Ohne Schleife wird es wohl nicht gehen:
Delphi-Quellcode:
Gruß Hawkeye
procedure CopyFileNames (Source, Target: TStrings);
var i : Integer; begin Target.Clear; for i := 0 to Source.Count - 1 do Target.Add(ExtractFileName(Source[i])); end; begin CopyFileNames (OpenDialog1.Files, AudioPlayList.ListBox1.Items); end; |
Re: ExtractFileName bei ListBox?
Geht es auch ohne for Schleife?
@Lukas, die übliche Fehlermeldung, wenn eine Inkompatibilität zwischen TString und String vorliegt. |
Re: ExtractFileName bei ListBox?
Ungetestet:
Delphi-Quellcode:
Hatte das Files mit FileName verwechselt. :pale:
var
i: Integer; begin for i := 0 to OpenDialog1.Files.Count - 1 do AudioPlayList.ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files[i])); MfG freak |
Re: ExtractFileName bei ListBox?
Also alles einzeln durchlaufen. Ja, so gehts. Danke.
|
Re: ExtractFileName bei ListBox?
Es geht auch direkt, da ListBox.Items und OpenDialog.Files beide vom Typ TStrings sind. Also kann auch direkt zugewiesen werden:
Delphi-Quellcode:
Jürgen
ListBox1.Items.Clear;
ListBox1.Items.AddStrings(OpenDialog1.Files); [/edit]Nachtrag Zitat:
Zitat:
Delphi-Quellcode:
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.
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; Jürgen PS. Sorry für mein Versehen! |
Re: ExtractFileName bei ListBox?
Zitat:
MfG freak |
Re: ExtractFileName bei ListBox?
Genau darum ging es mir. Der Pfad sollte zwar bekannt sein, aber nicht aufgelistet werden. Ich meine wie sieht denn das aus: C:\Dokumente und Einstellungen\.......und dann irgend wann mal der Dateiname, der letzenendlich nicht mehr angezeigt werden kann, weil der Quatsch davor schon fast zwei Zeilen einnimmt.
[Edit:] Für allen den es interessiert, gibt's hier die Lösung:
Delphi-Quellcode:
procedure TForm1.DeinButtonClick(Sender: TObject);
var i: Integer; begin OpenDialog1.Options := OpenDialog1.Options + [ofAllowMultiSelect]; if Opendialog1.Execute then begin if ListBox1.Count <= -1 then begin for i := 0 to OpenDialog1.Files.Count - 1 do ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files[i])); ListBox1.ItemIndex := 0; //Der Rest......Eure Events (Autoplay, Replay, etc.) end; end; |
Re: ExtractFileName bei ListBox?
Zitat:
Gruß Hawkeye |
Re: ExtractFileName bei ListBox?
Sorry, sollte eigentlich den ItemIndex -1 haben. Darf so etwas passieren?
Ja, mit dieser Codezeile war ich zu übereifrig!!! :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 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