![]() |
Delphi-Version: 10 Seattle
OpenDialog Mehrfachauswahl, Filename
Ich würde gerne mit einem OpenDialog folgendes realisieren:
Mehrere Dateien einer bestimmten Art auswählen, die einzelnen Filenames auslesen und anschließend untereinander in einem StringGrid darstellen. Ich hab das jetzt erstmal Testweise so gelöst:
Delphi-Quellcode:
um zu sehen, was der eigentlich ausließt wenn man mehrere Dateien auswählt.
OpenDialog1.Options := [ofAllowMultiSelect];
OpenDialog1.Execute(); ShowMessage(OpenDialog1.FileName); Mir ist bekannt wie man die Daten in das StringGrid einträgt. Was ich wissen wollte ist: Ich habe dem OpenDialog gesagt er soll nach .dproj - Dateien filtern. Für den Multiselect wäre es hilfreich wenn die Ordner in denen sich die Dateien befinden nicht mit angezeigt werden. Geht das irgendwie? Wie lese ich die gewählten Dateinamen einzeln aus um sie dem StringGrid zuzuweisen? |
AW: OpenDialog Mehrfachauswahl, Filename
.. sollte so funktionieren:
Delphi-Quellcode:
Wenn Du allerdings mit Multiselselect arbeitetest solltest Du dir OpenDialog1.Files anschauen.
ShowMessage(extractFilename(OpenDialog1.FileName));
Grüße Klaus |
AW: OpenDialog Mehrfachauswahl, Filename
Zitat:
Ich wollte allerdings mehrere Dateien auf einmal anwählen und deren "Filenames" dann einzeln anzeigen lassen. |
AW: OpenDialog Mehrfachauswahl, Filename
.. habe ich oben bereits ergänzt.
![]() Dies ist eine Liste mit den Dateinamen. Grüße Klaus |
AW: OpenDialog Mehrfachauswahl, Filename
Super, Danke!
|
AW: OpenDialog Mehrfachauswahl, Filename
Und nimm besser den TFileOpenDialog (VistaDialoge), statt dem TOpenDialog.
Emba war zwar auf die saudämliche geniale Idee gekommen den neuen Dialog intern zu verwenden, wenn man TOpenDialog verwendet und Windows diese API unterstützt/aktiviert hat, aber ein paar neue Features wurden vergessen durchzureichen. |
AW: OpenDialog Mehrfachauswahl, Filename
Irgendwie komm ich trotzdem nicht weiter.
Ich brauche dringend irgendeine Möglichkeit mehrere .dprojs auswählen und verarbeiten zu können. Ob durch Mehrfachauswahl auf einmal oder mehrere einzelne Auswahlen nacheinander. Die ganze Prozedur mit der Auslesung und der Eintragung sieht (unfertig) so aus:
Delphi-Quellcode:
Damit wird aber nur eins eingetragen. Weil dieses Programm aber unbedingt effizient werden muss, bräuchte ich hier dringend einen Lösungsansatz. :?
procedure TVersionNumberViewer.Button2Click(Sender: TObject);
var ProgrammName: string; iNummer, iName: integer; Abfrage: string; MaxAnzahl: integer; begin MaxAnzahl := 8; OpenDialog1.Execute(); // Programmname auslesen ProgrammName := (extractfilename(OpenDialog1.FileName)); EditNameAuswahl.Text := (extractfilename(OpenDialog1.FileName)); // XML-Dokument laden CurrentXML := NewXMLDocument; CurrentXML.LoadFromFile(String(OpenDialog1.FileName)); CurrentXML.Active := True; // Versionsnummer auslesen for iNummer := 1 to MaxAnzahl do begin VersionsNummern[iNummer] := '0.0'; end; // Eintragungen StringGrid for iNummer := 1 to MaxAnzahl do begin StringGrid1.Cells[0, 1] := ProgrammName; StringGrid1.Cells[1, iNummer] := inttostr(VersionsNummer); end; |
AW: OpenDialog Mehrfachauswahl, Filename
Zitat:
BTW: Das Zitat:
Delphi-Quellcode:
if OpenDialog1.Execute then
begin ... end; |
AW: OpenDialog Mehrfachauswahl, Filename
Zitat:
|
AW: OpenDialog Mehrfachauswahl, Filename
Dann machst du was falsch. :mrgreen:
Das funktioniert bei mir:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var FileName: string; begin ListBox1.Clear; if OpenDialog1.Execute(Handle) then begin for FileName in OpenDialog1.Files do ListBox1.Items.Add(FileName); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 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